Generator Hash XXH128

Generator ciągu hash xxh128 online

XXH128 hash

To narzędzie online umożliwia Ci wygenerowanie hash xxh128 dowolnego ciągu.

Długość XXH128 wynosi 32 znaków

Jak przydatne było dla Ciebie to narzędzie?

Średnia ocena: 4.8/5 na podstawie 8 głosów

Wesprzyj naszą pracę

Hash dostępny

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,

Czym jest XXH128?

XXH128 to 128-bitowa wersja algorytmu XXH3. Podczas gdy XXH3 może generować wyniki 64-bitowe lub 128-bitowe, XXH128 jest konkretną implementacją, która generuje pełny 128-bitowy skrót. Został zaprojektowany z myślą o zastosowaniach, w których prawdopodobieństwo kolizji musi być matematycznie znikome, nawet przy haszowaniu bilionów elementów. Podobnie jak XXH3, jest on stworzony z myślą o nowoczesnych procesorach, wykorzystując instrukcje wektorowe w celu osiągnięcia prędkości, które sprawiają, że jest to jedna z najszybszych istniejących funkcji skrótu 128-bitowego.

Jak działa funkcja skrótu XXH128?

XXH128 opiera się na rdzeniu XXH3, rozszerzając fazę mieszania „lawinowego” w celu obsługi dwukrotnie większego rozmiaru stanu:

  1. Rozszerzenie stanu: Wykorzystuje dwa równoległe stany wewnętrzne, każdy o szerokości 64 bitów, które są przetwarzane jednocześnie przy użyciu instrukcji SIMD.
  2. Szerokie mieszanie: Algorytm przetwarza dane w większych fragmentach w porównaniu z XXH64, zapewniając, że dane wejściowe są „rozmazane” na całym 128-bitowym stanie.
  3. Kluczowanie tajne: W fazie mieszania uwzględnia „sekret” (pseudolosowy blok danych). Dzięki temu wynik skrótu zależy nie tylko od danych wejściowych, ale także od wewnętrznej stałej, co znacznie poprawia jakość rozkładu i odporność na złośliwe próby kolizji.
  4. Finalizacja (128-bitowa lawina): Etap finalizacji polega na intensywnym mieszaniu bitowym dwóch 64-bitowych akumulatorów w celu uzyskania wysoce jednolitego 128-bitowego odcisku palca.

Porównanie: XXH128 vs. XXH3 i XXH64

  • XXH128 vs. XXH64:
  • Odporność na kolizje: XXH128 jest znacznie lepszy. Dzięki 128-bitowemu wynikowi próg kolizji w paradoksie urodzinowym jest wykładniczo wyższy niż w przypadku 64-bitowego skrótu (XXH64). Jeśli Twoja aplikacja obsługuje ogromne zbiory danych (np. indeksowanie big data), XXH128 jest bezpieczniejszym wyborem.
  • Wydajność: XXH128 jest tylko nieznacznie wolniejszy od XXH64, mimo że zapewnia dwukrotnie więcej bitów, dzięki wydajności wektorowej (SIMD) implementacji.

  • XXH128 a XXH3 (tryb 64-bitowy):

  • Główne zastosowanie: XXH3 (w trybie 64-bitowym) jest przeznaczony do tabel skrótów, w których „prędkość jest najważniejsza”, a kolizje są obsługiwane przez strukturę danych. XXH128 jest przeznaczony do zastosowań „skoncentrowanych na integralności” (takich jak deduplikacja plików lub weryfikacja dużych bloków danych), gdzie potrzebny jest unikalny identyfikator odporny na kolizje.
  • Złożoność: XXH128 wykorzystuje bardziej złożony etap finalizacji w celu „skompresowania” stanów wewnętrznych do końcowego skrótu 128-bitowego, podczas gdy XXH3 (64-bitowy) kończy działanie nieco wcześniej.

Lubisz ToolsYEP? Wesprzyj naszą pracę!

DO GÓRY