Mit diesem Online-Tool können Sie den Hash xxh128 einer beliebigen Zeichenkette erzeugen.
XXH128 Länge ist 32 Zeichen
Hash verfügbar
MD2 Hash, MD4 Hash, MD5 Hash, SHA1 Hash, SHA224 Hash, SHA256 Hash, SHA384 Hash, SHA512/224 Hash, SHA512/256 Hash, SHA512 Hash, SHA3-224 Hash, SHA3-256 Hash, SHA3-384 Hash, SHA3-512 Hash, RIPEMD128 Hash, RIPEMD160 Hash, RIPEMD256 Hash, RIPEMD320 Hash, WHIRLPOOL Hash, TIGER128,3 Hash, TIGER160,3 Hash, TIGER192,3 Hash, TIGER128,4 Hash, TIGER160,4 Hash, TIGER192,4 Hash, SNEFRU Hash, SNEFRU256 Hash, GOST Hash, GOST-CRYPTO Hash, ADLER32 Hash, CRC32 Hash, CRC32B Hash, CRC32C Hash, FNV132 Hash, FNV1A32 Hash, FNV164 Hash, FNV1A64 Hash, JOAAT Hash, MURMUR3A Hash, MURMUR3C Hash, MURMUR3F Hash, XXH32 Hash, XXH64 Hash, XXH3 Hash, XXH128 Hash, HAVAL128,3 Hash, HAVAL160,3 Hash, HAVAL192,3 Hash, HAVAL224,3 Hash, HAVAL256,3 Hash, HAVAL128,4 Hash, HAVAL160,4 Hash, HAVAL192,4 Hash, HAVAL224,4 Hash, HAVAL256,4 Hash, HAVAL128,5 Hash, HAVAL160,5 Hash, HAVAL192,5 Hash, HAVAL224,5 Hash, HAVAL256,5 Hash,
Was ist XXH128?
XXH128 ist die 128-Bit-Variante des XXH3-Algorithmus. Während XXH3 sowohl 64-Bit- als auch 128-Bit-Ausgaben liefern kann, handelt es sich bei XXH128 speziell um die Implementierung, die den vollständigen 128-Bit-Digest erzeugt. Er ist für Anwendungen konzipiert, bei denen die Wahrscheinlichkeit von Kollisionen mathematisch vernachlässigbar sein muss, selbst beim Hashen von Billionen von Elementen. Wie XXH3 ist er für moderne CPUs ausgelegt und nutzt vektorisierte Befehle, um Geschwindigkeiten zu erreichen, die ihn zu einer der schnellsten 128-Bit-Hash-Funktionen machen, die es gibt.
Wie funktioniert der XXH128-Hash?
XXH128 baut auf dem XXH3-Kern auf und erweitert die „Avalanche“-Mischphase, um die doppelte Zustandsgröße zu verarbeiten:
- Zustandserweiterung: Es nutzt zwei parallele interne Zustände mit jeweils 64 Bit Breite, die mithilfe von SIMD-Befehlen gleichzeitig verarbeitet werden.
- Breites Mischen: Der Algorithmus verarbeitet Daten in größeren Blöcken als XXH64 und stellt so sicher, dass die Eingabe über den gesamten 128-Bit-Zustand „verteilt“ wird.
- Secret Keying: Während der Mischphase wird ein „Secret“ (ein pseudozufälliger Datenblock) einbezogen. Dadurch hängt die Hash-Ausgabe nicht nur von der Eingabe ab, sondern auch von der internen Konstante, was die Verteilungsqualität und die Widerstandsfähigkeit gegen böswillige Kollisionsversuche erheblich verbessert.
- Finalisierung (128-Bit-Avalanche): In der Finalisierungsphase erfolgt eine intensive bitweise Vermischung der beiden 64-Bit-Akkumulatoren, um einen hochgradig einheitlichen 128-Bit-Fingerabdruck zu erzeugen.
Vergleich: XXH128 vs. XXH3 und XXH64
- XXH128 vs. XXH64:
- Kollisionsresistenz: XXH128 ist deutlich überlegen. Mit einer 128-Bit-Ausgabe ist die Kollisionsschwelle nach dem Geburtstagsparadoxon exponentiell höher als die eines 64-Bit-Hashs (XXH64). Wenn Ihre Anwendung mit riesigen Datensätzen arbeitet (z. B. Big-Data-Indizierung), ist XXH128 die sicherere Wahl.
Leistung: XXH128 ist dank der Effizienz der vektorisierten (SIMD) Implementierung nur geringfügig langsamer als XXH64, obwohl es die doppelte Bitanzahl bietet.
XXH128 vs. XXH3 (64-Bit-Modus):
- Hauptanwendungsbereich: XXH3 (im 64-Bit-Modus) ist für Hash-Tabellen gedacht, bei denen „Geschwindigkeit um jeden Preis“ im Vordergrund steht und Kollisionen von der Datenstruktur behandelt werden. XXH128 ist für „integritätsorientierte“ Anwendungen (wie Dateideduplizierung oder die Überprüfung großer Datenblöcke) gedacht, bei denen ein eindeutiger, kollisionsresistenter Identifikator benötigt wird.
- Komplexität: XXH128 verwendet eine komplexere Finalisierungsphase, um die internen Zustände zu einem endgültigen 128-Bit-Digest zu „komprimieren“, während XXH3 (64-Bit) etwas früher endet.