ForHosting KIT · Entwickler-Tools

FNV-1-Hash-Rechner

Hashen Sie Text auf die ursprüngliche Art von Fowler, Noll und Vo, mit Multiplikation vor dem Einmischen jedes Bytes: foobar ergibt bei 32 Bit 31f0b262, den Wert, den Referenztabellen für FNV-1 und nicht für FNV-1a nennen. Wählen Sie 32 oder 64 Bit. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Text
foobar
Erhalten Sie
Ergebnis
31f0b262
Fnv1
31f0b262
Hex
31f0b262
Bits
32

FNV-1 ist eine nicht-kryptografische Hashfunktion von Glenn Fowler, Landon Curt Noll und Phong Vo. Sie verarbeitet jede Nachricht als Bytefolge und multipliziert für jedes Byte den laufenden Hash mit einer festen FNV-Primzahl und verknüpft danach das Byte per XOR mit dem Produkt. Diese Reihenfolge multiplizieren-dann-xor unterscheidet FNV-1 von FNV-1a, das zuerst xor und dann multipliziert; beide teilen dieselben Offset-Basen und Primzahlen, liefern aber für jede nicht leere Zeichenkette unterschiedliche Digests.

Was FNV-1 berechnet und warum Breite und Hex-Länge zählen

FNV-1 behandelt jede Nachricht als geordnete Oktettfolge. Das Hash-Register wird mit einer veröffentlichten Offset-Basis initialisiert: hexadezimal acht eins eins c neun d c fünf für zweiunddreißig Bit oder c b f zwei neun c e vier acht vier zwei zwei zwei drei zwei fünf für vierundsechzig Bit.

Für jedes Eingabebyte multipliziert der Algorithmus den aktuellen Hash mit der passenden FNV-Primzahl—null eins null null null eins neun drei bei zweiunddreißig Bit oder eins null null null null null null null eins b drei bei vierundsechzig Bit—und verknüpft danach das Byte per exklusivem Oder mit dem Produkt, mit Wrap bei der gewählten Bitbreite. Eine bekannte Prüfzeichenkette ist foobar: FNV-1 mit zweiunddreißig Bit liefert drei eins f null b zwei sechs zwei, passend zu unabhängigen Referenztabellen der originalen Reihenfolge multiplizieren-dann-xor.

Die Antwort spiegelt außerdem bits, die Algorithmusbezeichnung FNV-1-32 oder FNV-1-64, die UTF-8-Bytezahl und den Originaltext wider, damit Clients eine vollständige Audit-Zeile anzeigen können, ohne Metadaten neu abzuleiten. Weil FNV-1 nicht kollisionsresistent, nicht geschlüsselt und ungeeignet für Passwörter oder Signaturen ist, behandeln Sie es als schnellen Inhaltsidentifikator oder Hash-Tabellen-Seed—nicht als Authentizitätsnachweis. Bevorzugen Sie Digests der SHA-Familie, wenn die Suchintention kryptografisches Hashing und nicht einen nicht-kryptografischen Fowler–Noll–Vo-Hash meint.

Wofür ein FNV-1-Hash nützlich ist

Autoren von Sprach-Runtimes und Systemstudierende nutzen einen FNV-1-Hash-Rechner, um handgerechnete Schritte multiplizieren-dann-xor gegen veröffentlichte Offset-Basen und Primzahlen zu prüfen, ohne in jeder Sprache eine modulare Multiplikationsschleife zu schreiben. Lehrplattformen und LMS-Plugins brauchen ein deterministisches Orakel, das leere Eingabe ablehnt statt die bloße Offset-Basis zurückzugeben, damit Auto-Grader fehlende Antworten von einem echten Digest unterscheiden. Content-Seiten, die für FNV-1-Hash oder FNV1-Rechner ranken, profitieren von einem Live-Tool, dessen kostenloser Pfad Byte für Byte mit dem bezahlten Automatisierungspfad im selben reinen Modul übereinstimmt.

Validierungsfehler werden nach Ablehnung nicht berechnet. Kombinieren Sie Landings zu FNV-1a, Adler-32, CRC oder kryptografischem Hash nur, wenn die Suchintention das ursprüngliche FNV-1 verlässt—halten Sie diese Seite auf FNV-1 fokussiert, damit die SEO-Intention scharf bleibt und verwandte Checksum- oder Digest-Landings nicht kannibalisiert.

Seeds für Hash-Tabellen und Bloom-Filter

Erzeugen Sie stabile FNV-1-32- oder FNV-1-64-Hex-Schlüssel für kurze Strings als Map-Buckets, Bloom-Filter oder Feature-Flag-Seeds über Sprachen hinweg.

Unterrichtsdemos zu FNV multiplizieren-dann-xor

Lehrkräfte zeigen den klassischen foobar-Prüfwert und lassen Studierende andere kurze Strings neu berechnen, ohne eine Krypto-Bibliothek zu installieren.

Was ist der Unterschied zwischen FNV-1 und FNV-1a?

FNV-1 multipliziert zuerst mit der FNV-Primzahl und verknüpft danach das Byte per XOR. FNV-1a macht zuerst XOR und multipliziert danach. Dieses Werkzeug implementiert nur FNV-1; Digests stimmen nicht mit FNV-1a-Tabellen überein.

Was passiert, wenn der Text leer ist?

Ein nicht leerer String ist erforderlich; leere Eingabe gilt nicht als erfolgreicher Hash der bloßen Offset-Basis.

Ist FNV-1 ein kryptografischer Hash?

Nein. FNV-1 ist ein schneller nicht-kryptografischer Hash für Hash-Tabellen und Content-Keys. Verwenden Sie SHA-256 oder Ähnliches, wenn Sie Kollisionsresistenz oder Authentifizierung brauchen.

Sollte ich FNV-1 mit 32 oder 64 Bit verwenden?

Nehmen Sie die Breite, die das andere System erwartet, denn beide stimmen nie überein. Die 32-Bit-Form ist voreingestellt und liefert acht Hexziffern, etwa 31f0b262 für foobar; die 64-Bit-Form hat eigenen Startwert und eigene Primzahl und liefert sechzehn.

Wie prüfe ich, ob mein eigener FNV-1-Code stimmt?

Hashen Sie das Wort foobar mit 32 Bit: Richtig ist 31f0b262, der Wert aus unabhängigen Referenztabellen. Erhalten Sie einen anderen Wert, sind Mischen und Multiplizieren womöglich vertauscht, und Ihr Code rechnet in Wahrheit FNV-1a.

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.

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

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/enc/fnv1 \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"text":"foobar"}'
{
  "text": "foobar"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "enc.fnv1",
  "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.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Leere Eingabe wird mit invalid_input abgelehnt, damit Aufrufer ein fehlendes Feld nie mit dem bekannten Leer-Nachrichtenwert gleich der Offset-Basis verwechseln.

Eingabevertrag, Fehler bei leerer Zeichenkette und JSON-Antwortform

Die Zeichenkette wird vor der FNV-Schleife als UTF-8 kodiert, sodass Mehrbyte-Zeichen jedes Code-Unit-Byte genau so beitragen, wie es eine Sprach-Runtime beim Hashen desselben UTF-8-Streams tun würde. Leere Eingabe wird absichtlich abgelehnt statt nur die Offset-Basis zurückzugeben, damit Produkt-UX und Auto-Grader fehlende Antworten von einem echten Hash unterscheiden. Verankern Sie sowohl einen Erfolgspfad als auch einen Fehler bei leerer Eingabe in der Continuous Integration, damit versehentliche Änderungen an Primzahl, Offset oder Multiplizieren-XOR-Reihenfolge nicht unbemerkt ausgeliefert werden. Optionale Nullfelder werden weggelassen statt als null ausgegeben, gemäß dem Vertrag des deklarativen Renderers für saubere Webformulare. Senden Sie einen JSON-Body mit einem Pflicht-Stringfeld namens text: jede nicht leere Zeichenfolge, die Sie hashen möchten. Die Aliase input, value, s, data, message und payload werden für dasselbe Feld akzeptiert, damit SDK-Stubs und Formular-Posts flexibel bleiben. Das optionale Feld bits wählt die Breite: Ganzzahl zweiunddreißig (Standard) oder vierundsechzig; Aliase width, bit_width und size werden akzeptiert. Fehlendes text, ein Nicht-String-Wert oder eine leere Zeichenkette scheitern mit invalid_input und einer klaren Meldung, dass ein nicht leerer String erforderlich ist; diese Fehler werden auf der Prepaid-API nicht berechnet. Ein ungültiger bits-Wert, der weder zweiunddreißig noch vierundsechzig ist, scheitert ebenfalls mit invalid_input. Bei Erfolg enthält der Body result, fnv1 und hex mit demselben Kleinbuchstaben-Hexadezimal-Digest; bits mit der genutzten Breite; algorithm fest auf FNV-1-32 oder FNV-1-64; input_bytes gleich der UTF-8-Länge; text als Echo der Eingabe; und message mit Bytezahl und Hex-Ergebnis.

Wo eine FNV-1-Hash-API Nutzen stiftet und wie die Preisgestaltung funktioniert

Nutzen Sie das kostenlose Browser-Tool für Einzelprüfungen; rufen Sie die Prepaid-KIT-API aus Backends, Serverless-Funktionen und SDKs auf, wenn Sie einen stabilen Vertrag unter Guthaben zu $0.002 pro erfolgreichem Item brauchen. Halten Sie Payloads bei gewöhnlichen Textgrößen, die zu einem Worker-Isolate-Item-Aufruf passen; dieses Werkzeug ist für kurze Strings und Protokollausschnitte, nicht für mehrmegabyte große Binärblobs.

CI-Fixtures für nicht-kryptografische Hash-Helfer

Pipelines verankern deterministische FNV-1-Hex-Ausgaben und den Fehler bei leerer Eingabe, damit versehentliche Prim-, Offset- oder Reihenfolgeänderungen sofort scheitern.

Wie berechne ich einen FNV-1-Hash von Text?

Senden Sie JSON mit einem nicht leeren Stringfeld text und optional bits auf 32 (Standard) oder 64. Die API kodiert die Zeichenkette als UTF-8, führt FNV-1 (multiplizieren-dann-xor) aus und liefert den Hash als Kleinbuchstaben-Hex in result, fnv1 und hex.

Ist der FNV-1-Hash-Rechner kostenlos?

Das Browser-Tool läuft kostenlos auf Ihrem Gerät. API-Aufrufe nutzen Prepaid-KIT-Guthaben zu $0.002 pro erfolgreichem Item; Validierungsfehler werden nicht berechnet.

Vollständige KIT-Dokumentation lesen →