Bu çevrimiçi araç, herhangi bir stringin xxh128 hash'ini oluşturmanıza olanak sağlar.
XXH128 uzunluğu 32 karakterdir
Hash mevcut
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,
XXH128 nedir?
XXH128, XXH3 algoritmasının 128 bitlik bir varyantıdır. XXH3, 64 bitlik veya 128 bitlik çıktılar sağlayabilirken, XXH128 özellikle tam 128 bitlik özet üreten bir uygulamadır. Trilyonlarca öğeyi hash ederken bile çarpışma olasılığının matematiksel olarak ihmal edilebilir düzeyde olması gereken uygulamalar için tasarlanmıştır. XXH3 gibi, modern CPU'lar için geliştirilmiştir ve vektörleştirilmiş komutlar kullanarak mevcut en hızlı 128 bit hash fonksiyonlarından biri olmasını sağlayan hızlara ulaşır.
XXH128 hash nasıl çalışır?
XXH128, XXH3 çekirdeğini temel alır ve "avalanche" karıştırma aşamasını, iki kat daha büyük durum boyutunu işleyebilecek şekilde genişletir:
- Durum Genişletme: SIMD komutları kullanılarak eşzamanlı olarak işlenen, her biri 64 bit genişliğinde iki paralel dahili durum kullanır.
- Geniş Karıştırma: Algoritma, verileri XXH64'e kıyasla daha büyük parçalar halinde işler ve girdinin 128 bitlik durumun tamamına "yayılmasını" sağlar.
- Gizli Anahtarlama: Karıştırma aşamasında bir "gizli" (sözde rastgele bir veri bloğu) içerir. Bu, hash çıktısını sadece girişe değil, aynı zamanda dahili sabita da bağlı hale getirir; bu da dağıtım kalitesini ve kötü niyetli çarpışma girişimlerine karşı direnci önemli ölçüde artırır.
- Sonlandırma (128-bit Avalanche): Sonlandırma aşaması, son derece homojen bir 128-bit parmak izi üretmek için iki 64-bit biriktiricinin yoğun bir bit bazlı karıştırmasını gerçekleştirir.
Karşılaştırma: XXH128 ile XXH3 ve XXH64
- XXH128 ile XXH64:
- Çakışma Direnci: XXH128 çok daha üstündür. 128-bit çıktı ile doğum günü paradoksu çakışma eşiği, 64-bit hash (XXH64) ile karşılaştırıldığında katlanarak daha yüksektir. Uygulamanız büyük veri kümelerini işliyorsa (ör. büyük veri indeksleme), XXH128 daha güvenli bir seçimdir.
Performans: XXH128, vektörleştirilmiş (SIMD) uygulamanın verimliliği sayesinde, iki kat daha fazla bit sağlamasına rağmen XXH64'ten sadece biraz daha yavaştır.
XXH128 ile XXH3 (64 bit modu) karşılaştırması:
- Birincil Kullanım: XXH3 (64 bit modunda), çarpışmaların veri yapısı tarafından yönetildiği "ne pahasına olursa olsun hız" öncelikli hash tabloları için tasarlanmıştır. XXH128 ise, benzersiz ve çarpışmaya dayanıklı bir tanımlayıcıya ihtiyaç duyulan "bütünlüğe odaklı" uygulamalar (dosya tekilleştirme veya büyük veri bloklarının doğrulanması gibi) için tasarlanmıştır.
- Karmaşıklık: XXH128, iç durumları nihai 128 bitlik bir özet haline "sıkıştırmak" için daha karmaşık bir sonlandırma aşaması kullanırken, XXH3 (64 bit) bu aşamadan biraz daha erken çıkar.