CRC-32B Hash Kodu Hesaplayıcı
Yayınlandı: 17 Şubat 2025 18:30:56 UTC
Metin girişi veya dosya yüklemesine dayalı bir karma kod hesaplamak için CRC-32B (Döngüsel Artıklık Kontrolü 32 bit, B varyantı) karma işlevini kullanan karma kod hesaplayıcısı.CRC-32B Hash Code Calculator
Döngüsel Artıklık Kontrolü (CRC), ham verilerde yanlışlıkla yapılan değişiklikleri tespit etmek için yaygın olarak kullanılan bir hata tespit kodudur. Teknik olarak kriptografik bir hash fonksiyonu olmasa da, CRC-32 değişken uzunluktaki girdiden sabit boyutlu bir çıktı (32 bit) üretme yeteneği nedeniyle genellikle bir hash olarak adlandırılır. Bu sayfada sunulan versiyon CRC-32B varyantıdır ve aslında PHP dilinde bitleri ters çeviren bir tuhaflıktan ibarettir (orijinal CRC-32'de little-endian'a karşı big-endian).
Tam açıklama: Bu sayfada kullanılan hash fonksiyonunun özel uygulamasını ben yazmadım. PHP programlama dili ile birlikte gelen standart bir işlevdir. Ben sadece kolaylık sağlaması için burada herkese açık hale getirmek için web arayüzünü yaptım.
CRC-32B Karma Algoritması Hakkında
Ben bir matematikçi değilim, ancak bu hash fonksiyonunu basit bir benzetmeyle açıklamaya çalışacağım. Kriptografik hash fonksiyonlarının çoğunun aksine, özellikle karmaşık bir algoritma değildir, bu yüzden muhtemelen iyi olacaktır ;-)
Postayla bir mektup gönderdiğinizi düşünün, ancak alıcıya ulaşmadan önce zarar görebileceğinden endişe ediyorsunuz. Mektubun içeriğine dayanarak bir CRC-32 sağlama toplamı hesaplar ve bunu zarfın üzerine yazarsınız. Alıcı mektubu aldığında, sağlama toplamını da hesaplayabilir ve yazdıklarınızla eşleşip eşleşmediğine bakabilir. Eğer eşleşiyorsa, mektup yolda hasar görmemiş ya da değiştirilmemiştir.
CRC-32'nin bunu yapma şekli dört adımlı bir süreçtir:
Adım 1: Biraz Fazladan Boşluk Ekleme (Dolgu)
- CRC mesajın sonuna biraz fazladan yer ekler (bir kutudaki ambalaj fıstıkları gibi).
- Bu, hataları daha kolay tespit etmesine yardımcı olur.
Adım 2: Sihirli Cetvel (Polinom)
- CRC-32 verileri ölçmek için özel bir "sihirli cetvel" kullanır.
- Bu cetveli tümsekler ve oluklardan oluşan bir desen gibi düşünün (bu polinomdur, ancak bu kelime hakkında endişelenmeyin).
- CRC-32 için en yaygın "cetvel" sabit bir modeldir.
Adım 3: Cetveli Kaydırma (Bölme İşlemi)
- Şimdi CRC cetveli mesaj üzerinde kaydırıyor.
- Her noktada tümsek ve olukların aynı hizada olup olmadığını kontrol eder.
- Eğer aynı hizada değillerse, CRC bir not alır (bu işlem basit XOR kullanılarak yapılır, anahtarları açıp kapatmak gibi).
- Sona ulaşana kadar anahtarları kaydırmaya ve çevirmeye devam eder.
Adım 4: Nihai Sonuç (Checksum)
- Cetveli tüm mesaj boyunca kaydırdıktan sonra, orijinal veriyi temsil eden küçük bir sayı (32 bit uzunluğunda) kalır.
- Bu sayı mesaj için benzersiz bir parmak izi gibidir.
- Bu CRC-32 sağlama toplamıdır.
Sayfada sunulan sürüm CRC-32B varyantıdır ve çoğunlukla bit sırasını değiştiren bir PHP tuhaflığıdır (little-endian vs big-endian). Muhtemelen bu sürümü yalnızca onu kullanan başka bir PHP uygulamasıyla uyumluluğa özellikle ihtiyacınız varsa kullanmalısınız.
Diğer varyantlar için de hesaplayıcılarım var: