FNV-1a-Hash
Erhalten Sie den FNV-1a-Fingerabdruck eines Textes, bei dem jedes Byte vor der Multiplikation eingemischt wird: foobar ergibt bei 32 Bit bf9cf968, bei 64 Bit sechzehn Hexziffern, ein stabiles Etikett für Hashtabellen, Bloomfilter und Cache-Schlüssel. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- foobar
- Bits
- 32
- Bits
- 32
- Hash
- bf9cf968
- Hash (Ganzzahl)
- 3.214.735.720
- Bytes
- 6
FNV-1a ist die alternative Fowler–Noll–Vo-Hashform: ein schneller nicht-kryptografischer Digest aus fester Offset-Basis, sorgfältig gewählter Primzahl und einem pro-Byte-Schritt aus Exclusive-Or und anschließender Multiplikation, beliebt in Hashtabellen, Bloom-Filtern und kompakten Fingerprint-Feldern. Entwickler greifen zu FNV-1a, wenn sie ein stabiles Zweiunddreißig- oder Vierundsechzig-Bit-Tag brauchen, das günstiger ist als ein kryptografischer Hash und ordnungsempfindlicher als eine einfache Summe. Dieses FNV-1a-Hash-Werkzeug nimmt Klartext entgegen, serialisiert ihn als UTF-8 und liefert eine hexadezimale Kleinbuchstaben-Zeichenkette—acht Ziffern für das Zweiunddreißig-Bit-Profil oder sechzehn für das Vierundsechzig-Bit-Profil—plus eine Integer-Form, die UTF-8-Bytelänge, die gewählte Breite und ein empty-Flag, wenn die Quellzeichenkette Länge null hat.
Was FNV-1a bedeutet und wie sich 32- und 64-Bit-Profile unterscheiden
Fowler–Noll–Vo-Hashes falten eine Nachricht in ein Residual fester Breite, indem sie von einer dokumentierten Offset-Basis starten und für jedes Eingabebyte zuerst Exclusive-Or des Bytes in den laufenden Hash anwenden und dann mit einer für diese Breite gewählten Primzahl multiplizieren. Die alternative Form FNV-1a wendet Exclusive-Or vor der Multiplikation an; die ältere Form FNV-1 multipliziert zuerst. Diese Fähigkeit implementiert nur FNV-1a, weil diese Reihenfolge die ist, die die meisten Sprachökosysteme und Hashtabellen-Tutorials heute zitieren.
Für zweiunddreißig Bit ist die Basis null-x-acht-eins-eins-c-neun-d-c-fünf und die Primzahl null-x-null-eins-null-null-null-eins-neun-drei und erzeugt eine achtstellige Hex-Zeichenkette in Kleinbuchstaben. Für vierundsechzig Bit ist die Basis null-x-c-b-f-zwei-neun-c-e-vier-acht-vier-zwei-zwei-zwei-drei-zwei-fünf und die Primzahl null-x-eins-null-null-null-null-null-null-null-eins-b-drei und erzeugt sechzehn Hex-Ziffern. Leere Eingabe lässt das Residual gleich der Offset-Basis selbst, und dieser Endpunkt meldet empty als true, damit Clients bewusste Leerfelder von fehlenden Feldern unterscheiden können.
FNV-1a ist für schnelles Hashing in Tabellen und leichte Integritäts-Tags gedacht; es ist kein kryptografischer Hash und darf nicht dort verwendet werden, wo absichtliche Kollisionsresistenz, Passwortspeicherung oder Signaturschemata verlangt werden. Wenn ein Drittanbieter-Werkzeug bei denselben UTF-8-Bytes abweicht, nutzt es fast immer FNV-1 statt FNV-1a, eine andere Breite oder hasht UTF-16-Codeeinheiten statt UTF-8-Bytes.
Wofür ein FNV-1a-Hash nützlich ist
Entwickler fügen kurze Schlüssel, Konfigurationsfragmente und Cache-Kennungen in einen FNV-1a-Hash-Rechner ein, wenn sie einen kompakten Zweiunddreißig- oder Vierundsechzig-Bit-Bucket-Index brauchen, der zu einer Sprachlaufzeit oder einer Legacy-Protokollnotiz passt. Support-Ingenieure berechnen Digests aus Tickettext neu, um zu bestätigen, dass ein eingefügter Dump unterwegs nicht abgeschnitten oder umkodiert wurde. Bildungslabore nutzen denselben Endpunkt, um zu zeigen, dass das Ändern eines einzelnen Zeichens viele Hex-Ziffern umkippt und so Lawinenverhalten ohne kryptografische Maschinen veranschaulicht.
Halten Sie Nutzlasten unter der dokumentierten Zeichendecke, behandeln Sie das Hex-Feld als kanonisches Einfügeziel, und Sie erhalten reproduzierbare FNV-1a-Werte für Dokumentation, SDKs, Edge-Worker und Klassenzimmerdemos, ohne einen eigenen Hash-Dienst aufzubauen.
Anwendungsfälle
Hashtabellen-Schlüssel und Bucket-Tags
Berechnen Sie FNV-1a kurzer Zeichenketten, wenn Sie einen stabilen nicht-kryptografischen 32- oder 64-Bit-Fingerprint für Tabellen-Buckets, Bloom-Filter oder Cache-Shard-Schlüssel brauchen.
Klassen- und Support-Demos
Zeigen Sie Studierenden und Operatoren, wie das Bearbeiten weniger Zeichen das FNV-1a-Hex ändert, ohne lokale Hilfsprogramme oder kryptografische Bibliotheken zu installieren.
Häufige Fragen
Was ist der Unterschied zwischen 32-Bit- und 64-Bit-FNV-1a?
Beide nutzen den FNV-1a-Schritt Exclusive-Or und dann Multiplikation auf jedem UTF-8-Byte, aber mit unterschiedlichen Offset-Basen und Primzahlen. Zweiunddreißig Bit liefert acht Hex-Ziffern; vierundsechzig Bit liefert sechzehn. Standard ist 32, wenn bits weggelassen wird.
Was passiert bei leerer Eingabe?
Leerer Text ist gültig. Die Antwort setzt empty auf true, hash auf die Offset-Basis der gewählten Breite (811c9dc5 für 32 Bit, cbf29ce484222325 für 64 Bit) und bytes auf 0.
Ist FNV-1a ein kryptografischer Hash?
Nein. FNV-1a ist ein schneller nicht-kryptografischer Hash für Tabellen und leichte Fingerprints. Verwenden Sie ihn nicht für Passwörter, Signaturen oder kollisionsresistente Integrität gegen Angreifer; nutzen Sie in diesen Fällen Digests der SHA-Familie.
Warum liefert ein anderes Werkzeug einen anderen FNV-1a-Hash?
Beim selben Text nutzt das andere Werkzeug fast immer FNV-1, das vor dem Mischen multipliziert, eine andere Breite oder die UTF-16-Einheiten des Textes statt seiner UTF-8-Bytes. Dieses Werkzeug rechnet für Sie über UTF-8-Bytes in der FNV-1a-Reihenfolge.
Wie wird ein FNV-1a-Hash berechnet?
Er beginnt bei einem festen Startwert, 0x811c9dc5 bei 32 Bit. Für jedes Byte des Textes wird zuerst das Byte per exklusivem Oder in den laufenden Wert gemischt, dann wird der Wert mit der Primzahl 0x01000193 multipliziert und auf 32 Bit gekürzt.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/enc/fnv1a \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"foobar"}'const res = await fetch("https://api.kit.forhosting.com/enc/fnv1a", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "foobar"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/fnv1a",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "foobar"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/fnv1a", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"foobar"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"foobar"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/fnv1a", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "foobar"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.fnv1a",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Kein Netzaufruf, kein Zufallssalz und keine Wanduhr fließen in die Berechnung ein—jeder erfolgreiche Pfad ist reine Arithmetik zum veröffentlichten Basispreis $0.002.
Eingabevertrag, Antwortfelder und Verhalten bei leerer Eingabe
Die leere Zeichenkette ist absichtlich erlaubt: die mathematische Identität von FNV-1a über null Bytes ist die Offset-Basis, und Pipelines, die optionale Felder fingerprinten, brauchen ein stabiles Residual statt eines harten Fehlers. Wenn die Quelllänge null ist, setzt die Antwort empty auf true, hash auf das Hex der Basis für die gewählte Breite und bytes auf null. Es gibt keinen Modusschalter für FNV-1, MD5, SHA oder CRC: wenn Sie diese Digests brauchen, nutzen Sie eine eigene Fähigkeit, damit jede Landingpage einer einzigen Suchintention und einem SEO-Slug entspricht. Senden Sie einen JSON-Body mit dem Pflichtfeld text gleich der Zeichenkette, die Sie hashen möchten. Die Aliase input, value, s, string und content werden akzeptiert, damit ältere Formulare und kurze Clients weiterhin binden. Optionales bits wählt die Breite: zweiunddreißig (Standard) oder vierundsechzig; Aliase width und bit_width werden akzeptiert, und sowohl numerische als auch Zeichenkettenformen funktionieren. Endliche Zahlen und große Ganzzahlen werden vor dem Hashen in Zeichenketten umgewandelt; Objekte, Arrays, Booleans, null, Infinity und NaN lösen invalid_input aus und werden nicht abgerechnet. Bei nicht leerer Eingabe ist empty false, bytes entspricht der UTF-8-Länge, hash ist der Kleinbuchstaben-Hex-Digest ohne null-x-Präfix, und hash_int trägt denselben Wert als vorzeichenlose Ganzzahl für zweiunddreißig Bit oder als Dezimalzeichenkette für vierundsechzig Bit, damit der volle vorzeichenlose Bereich in JSON exakt bleibt. Algorithm ist immer die Bezeichnung FNV-1a; offset_basis und prime wiederholen die Parameterzeichenketten der gewählten Breite, damit OpenAPI-Beispiele und Support-Antworten das Profil ohne Mehrdeutigkeit zitieren können.
Wo eine FNV-1a-Hash-API ihren Nutzen entfaltet
Weil die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netz; fehlgeschlagene Validierung wird nicht abgerechnet.
Integrationsbeispiele
CI-Golden-Vektoren und Fixtures für leere Eingabe
Pinnen Sie foobar → bf9cf968 (32 Bit) und leer → Offset-Basis, damit Continuous Integration FNV-1 vs. FNV-1a oder UTF-8-Kodierungsdrift sofort erkennt.
Technische Fragen
Wie berechne ich einen FNV-1a-Hash von Text?
Senden Sie JSON mit text gleich Ihrer Zeichenkette und optionalem bits 32 oder 64 (Standard 32). Das Feld hash liefert Kleinbuchstaben-Hex des FNV-1a-Digests über UTF-8-Bytes; hash_int ist derselbe Wert als vorzeichenlose Ganzzahl (Zahl für 32 Bit, Dezimalzeichenkette für 64 Bit).
Was kostet der FNV-1a-Hash-Rechner?
Das Browser-Werkzeug ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingabe wird nicht abgerechnet.