Miklix

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ı.

Bu sayfa, mümkün olduğunca çok kişi tarafından erişilebilir olması amacıyla İngilizce'den makine çevirisiyle çevrilmiştir. Ne yazık ki, makine çevirisi henüz mükemmelleştirilmiş bir teknoloji değildir, bu nedenle hatalar meydana gelebilir. Tercih ederseniz, orijinal İngilizce versiyonu buradan görüntüleyebilirsiniz:

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.


Yeni Hash Kodunu Hesapla

Bu form aracılığıyla gönderilen veriler veya yüklenen dosyalar yalnızca istenen karma kodun oluşturulması için gereken süre boyunca sunucuda tutulacaktır. Sonuç tarayıcınıza döndürülmeden hemen önce silinecektir.

Girdi verileri:



Gönderilen metin UTF-8 kodludur. Hash fonksiyonları ikili veriler üzerinde çalıştığından, sonuç metnin başka bir kodlamada olmasından farklı olacaktır. Belirli bir kodlamadaki bir metnin hashini hesaplamanız gerekiyorsa, bunun yerine bir dosya yüklemelisiniz.



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:


Bluesky'de paylaşFacebook'ta paylaşLinkedIn'de paylaşTumblr'da paylaşX'te paylaşLinkedIn'de paylaşPinterest'e Pinleyin

Mikkel Bang Christensen

Yazar Hakkında

Mikkel Bang Christensen
Mikkel miklix.com'un yaratıcısı ve sahibidir. Profesyonel bilgisayar programcısı/yazılım geliştiricisi olarak 20 yılı aşkın deneyime sahiptir ve şu anda büyük bir Avrupa BT şirketinde tam zamanlı olarak çalışmaktadır. Blog yazmadığı zamanlarda, boş zamanlarını çok çeşitli ilgi alanları, hobiler ve aktivitelerle geçirmektedir ve bu da bir dereceye kadar bu web sitesinde kapsanan konuların çeşitliliğine yansıyabilir.