ForHosting KIT · Strumenti per sviluppatori

Hash FNV-1a

Ottenga l'impronta FNV-1a di qualsiasi testo, mescolando ogni byte prima di moltiplicare: foobar dà bf9cf968 a 32 bit, o sedici cifre esadecimali a 64 bit, un'etichetta stabile per tabelle hash, filtri bloom e chiavi di cache. Gratis nel suo browser.

  • Gratis
  • Funziona nel suo browser
  • Senza registrazione
  • I suoi dati restano sul dispositivo
Usalo da WebAPIEmailTelegramApp presto
Se inserisce
Testo
foobar
Bit
32
Ottiene
Bit
32
Hash
bf9cf968
Hash (intero)
3.214.735.720
Byte
6

FNV-1a è la forma alternativa dell’hash Fowler–Noll–Vo: un digest non crittografico rapido costruito da una base di offset fissa, un primo scelto con cura e un passo per byte di exclusive-or e poi moltiplicazione, popolare in tabelle hash, filtri di Bloom e campi di impronta compatti. Gli sviluppatori ricorrono a FNV-1a quando servono un’etichetta stabile a trentadue o sessantaquattro bit più economica di un hash crittografico e più sensibile all’ordine di una semplice somma. Questo strumento hash FNV-1a accetta testo semplice, lo serializza come UTF-8 e restituisce una stringa esadecimale in minuscolo—otto cifre per il profilo a trentadue bit o sedici per quello a sessantaquattro—più una forma intera, la lunghezza in byte UTF-8, la larghezza scelta e un indicatore empty quando la stringa di origine ha lunghezza zero.

Cosa significa FNV-1a e come differiscono i profili a 32 e 64 bit

Gli hash Fowler–Noll–Vo piegano un messaggio in un residuo a larghezza fissa partendo da una base di offset documentata e, per ogni byte di ingresso, prima applicano exclusive-or del byte sull’hash corrente e poi moltiplicano per un primo scelto per quella larghezza. La forma alternativa FNV-1a applica l’exclusive-or prima della moltiplicazione; la forma più vecchia FNV-1 moltiplica prima. Questa capacità implementa solo FNV-1a perché quell’ordine è quello che la maggior parte degli ecosistemi di linguaggi e tutorial sulle tabelle hash cita oggi.

Per trentadue bit la base è zero-x-otto-uno-uno-c-nove-d-c-cinque e il primo è zero-x-zero-uno-zero-zero-zero-uno-nove-tre, producendo una stringa hex di otto cifre in minuscolo. Per sessantaquattro bit la base è zero-x-c-b-f-due-nove-c-e-quattro-otto-quattro-due-due-due-tre-due-cinque e il primo è zero-x-uno-zero-zero-zero-zero-zero-zero-zero-uno-b-tre, producendo sedici cifre hex. FNV-1a è pensato per hashing rapido in tabelle e etichette di integrità leggere; non è un hash crittografico e non deve essere usato dove servono resistenza deliberata alle collisioni, archiviazione di password o schemi di firma.

Se uno strumento di terze parti non concorda sugli stessi byte UTF-8, usa quasi sempre FNV-1 invece di FNV-1a, una larghezza diversa, o hash di unità UTF-16 invece di byte UTF-8.

Chiavi di tabella hash e etichette di bucket

Calcoli FNV-1a di stringhe brevi quando Le serve un’impronta non crittografica stabile a 32 o 64 bit per bucket di tabella, filtri di Bloom o chiavi di frammento di cache.

Demo in aula e di supporto

Mostri a studenti e operatori come modificare pochi caratteri cambia l’hex FNV-1a senza installare utilità locali o librerie crittografiche.

Qual è la differenza tra FNV-1a a 32 e a 64 bit?

Entrambi usano il passo FNV-1a exclusive-or e poi moltiplicazione su ogni byte UTF-8, ma con basi e primi diversi. Trentadue bit restituisce otto cifre hex; sessantaquattro bit ne restituisce sedici. Il predefinito è 32 se bits è omesso.

Cosa succede con input vuoto?

Il testo vuoto è valido. La risposta imposta empty a true, hash alla base di offset della larghezza scelta (811c9dc5 per 32 bit, cbf29ce484222325 per 64 bit) e bytes a 0.

FNV-1a è un hash crittografico?

No. FNV-1a è un hash non crittografico rapido per tabelle e impronte leggere. Non lo usi per password, firme o integrità resistente alle collisioni contro aggressori; usi digest della famiglia SHA in quei casi.

Perché un altro strumento dà un hash FNV-1a diverso?

Con lo stesso testo, l'altro strumento usa quasi sempre FNV-1, che moltiplica prima di mescolare, un'altra larghezza, oppure le unità UTF-16 del testo invece dei suoi byte UTF-8. Questo lavora sui byte UTF-8 nell'ordine di FNV-1a.

Come si calcola un hash FNV-1a?

Si parte da una base fissa, 0x811c9dc5 a 32 bit. Per ogni byte del testo, prima il byte viene mescolato al valore corrente con un o esclusivo, poi il valore viene moltiplicato per il numero primo 0x01000193 e ridotto a 32 bit.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/enc/fnv1a

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/enc/fnv1a \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"foobar"}'
{
  "text": "foobar"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.fnv1a",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Nessuna chiamata di rete, sale casuale o orologio di parete entra nel calcolo: ogni percorso riuscito è aritmetica pura al prezzo base pubblicato $0.002.

Cosa significa FNV-1a e come differiscono i profili a 32 e 64 bit

L’input vuoto lascia il residuo uguale alla base di offset stessa, che questo endpoint segnala con empty a true così i client distinguono un bianco deliberato da un campo mancante.

Contratto di input, campi di risposta e comportamento con input vuoto

La stringa vuota è consentita di proposito: l’identità matematica di FNV-1a su zero byte è la base di offset, e le pipeline che improntano campi opzionali necessitano di un residuo stabile invece di un fallimento duro. Quando la lunghezza di origine è zero la risposta imposta empty a true, hash all’hex della base per la larghezza scelta e bytes a zero. Non c’è un selettore di modalità per FNV-1, MD5, SHA o CRC: se Le servono quei digest, usi una capacità dedicata così ogni pagina corrisponde a una sola intenzione di ricerca e slug SEO. Invii un corpo JSON con il campo obbligatorio text impostato sulla stringa che desidera hashare. Gli alias input, value, s, string e content sono accettati così form antichi e client brevi si collegano ancora. Il bits opzionale seleziona la larghezza: trentadue (predefinito) o sessantaquattro; sono accettati gli alias width e bit_width, e funzionano sia forme numeriche sia stringa. Numeri finiti e interi grandi vengono convertiti in stringa prima dell’hash; oggetti, array, booleani, null, Infinity e NaN generano invalid_input e non vengono fatturati. Per input non vuoto empty è false, bytes uguaglia la lunghezza UTF-8, hash è il digest hex minuscolo senza prefisso zero-x, e hash_int porta lo stesso valore come intero senza segno per trentadue bit o come stringa decimale per sessantaquattro bit, così l’intervallo senza segno completo resta esatto in JSON. Algorithm è sempre l’etichetta FNV-1a; offset_basis e prime ripetono le stringhe di parametri della larghezza selezionata così esempi OpenAPI e risposte di supporto citano il profilo senza ambiguità.

Dove un’API hash FNV-1a porta valore

Gli sviluppatori incollano chiavi brevi, frammenti di configurazione e identificatori di cache in una calcolatrice hash FNV-1a quando serve un indice di bucket compatto a trentadue o sessantaquattro bit che corrisponda a un runtime di linguaggio o a una nota di protocollo legacy. Gli ingegneri di supporto ricalcolano i digest dal testo del ticket per confermare che un dump incollato non sia stato troncato o ricodificato in transito. I laboratori didattici usano lo stesso endpoint per mostrare che cambiare un solo carattere inverte molte cifre hex, illustrando il comportamento a valanga senza introdurre macchinari crittografici. Poiché l’implementazione è parse pura di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello né rete in uscita; la validazione fallita non consuma saldo. Mantenga i payload sotto il tetto di caratteri documentato, tratti il campo hex come destinazione canonica di incolla, e otterrà valori FNV-1a riproducibili per documentazione, SDK, worker all’edge e demo in aula senza erigere un servizio di hashing separato.

Vettori golden di CI e fixture di input vuoto

Fissi foobar → bf9cf968 (32 bit) e vuoto → base di offset così l’integrazione continua intercetta subito FNV-1 vs FNV-1a o derive di codifica UTF-8.

Come si calcola un hash FNV-1a del testo?

Invii JSON con text impostato sulla Sua stringa e bits opzionale a 32 o 64 (predefinito 32). Il campo hash restituisce hex minuscolo del digest FNV-1a sui byte UTF-8; hash_int è lo stesso valore come intero senza segno (numero per 32 bit, stringa decimale per 64 bit).

Quanto costa la calcolatrice hash FNV-1a?

Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l’input non valido non viene fatturato.

Leggi la documentazione completa del KIT →