Bu çevrimiçi araç, herhangi bir stringin murmur3a hash'ini oluşturmanıza olanak sağlar.
MURMUR3A uzunluğu 8 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,
Murmur3A nedir?
Murmur3A, Austin Appleby tarafından geliştirilen MurmurHash3 ailesine ait, yüksek performanslı, kriptografik olmayan bir karma fonksiyonudur. Özellikle karma tabanlı arama tabloları (hash map'ler) için son derece hızlı ve etkili olacak şekilde tasarlanmıştır. Kriptografik olmadığı için, güvenlik veya verileri kötü niyetli saldırılara karşı korumak amacıyla tasarlanmamıştır; bunun yerine, anahtarları bir hash tablosu üzerinde eşit bir şekilde dağıtarak, yüksek yüklu veri yapılarındaki çakışmaları en aza indirgemede mükemmeldir.
Murmur3A hash nasıl çalışır?
Algoritma, giriş verilerini 4 baytlık parçalar halinde işler ve giriş bitlerini iyice karıştırmak için bir dizi bitwise işlem gerçekleştirir:
- Başlatma: Hash durumunu başlatmak için bir tohum değeri (32 bitlik bir tamsayı) ile başlar.
- Gövde İşleme: Giriş, 32 bitlik bloklara bölünür. Algoritma, her blok için büyük bir sabitle (sihirli sabit
0xcc9e2d51) çarpma işlemi, sol bit döndürme (ROL) ve ikinci bir sabitle (0x1b873593) ile bir çarpma işlemi gerçekleştirir. - Karıştırma: Sonuç, mevcut hash durumu ile XOR işlemine tabi tutulur ve avalanche etkisini (girdideki bir bitin değişmesi çıktıda birçok bitin değişmesine neden olur) sağlamak için hash durumu döndürülür ve çarpılır.
- Sonlandırma: Tüm blokları işledikten (ve kalan kuyruk baytlarını işledikten) sonra, algoritma son bir "karıştırma" veya "çığ" adımı gerçekleştirir; bu adımda, girdideki küçük farklılıkların bile önemli ölçüde farklı çıktı hash değerleri üretmesini sağlamak için XOR kaydırmaları kullanılır.
Murmur3A ve CRC32C arasındaki fark
Her ikisi de hızlı, kriptografik olmayan hash fonksiyonları olsa da, farklı görevler için optimize edilmiştir:
- Çakışma Direnci: Murmur3A, anahtarları eşit bir şekilde dağıtma konusunda önemli ölçüde daha iyidir, bu da onu hash tabloları ve veri yapılarında kullanım için üstün kılar. CRC32C, veri akışlarında hata tespiti için tasarlanmıştır, bu nedenle matematiksel olarak anahtarları dağıtmak yerine bozulma kalıplarını yakalamak üzere ayarlanmıştır.
- Performans: CRC32C, hızlı olması için büyük ölçüde belirli donanım komutlarına (modern CPU'larda SSE4.2) dayanır. Murmur3A, saf yazılım uygulamasında yüksek verimlilik sağlayacak şekilde tasarlanmıştır; bu da onu, donanım hızlandırmalı CRC'nin bulunmadığı eski donanımlarda veya platformlarda daha hızlı hale getirir.
- Çığ Etkisi: Murmur3A, çok daha güçlü bir "çığ etkisine" sahiptir; bu, çıktının CRC32C'ye göre girdi değişikliklerine çok daha duyarlı olduğu anlamına gelir ve bu, hash tabanlı veri depolamada kümelenmeleri önlemek için temel bir gerekliliktir.