CRC32 ve Sağlama Toplamı Hesaplama

Metin veya veri için CRC ve Adler sağlama toplamları oluşturun.

Sonuç

3d653119
3610a686
062c0215

Nasıl hesaplanır?

Sağlama toplamı, kazara değişikliklerin fark edilebilmesi için metni kısa, sabit boyutlu bir değere indirger. Araç yazdığınız baytların kendisini özetler ve üç değeri onaltılık olarak yazar. CRC-32/BZIP2, PHP'nin crc32 algoritmasıdır; 32 bitlik döngüsel artıklık denetiminin bzip2 çeşididir ve PHP bunu baytları ters sırada yazdırır (bu yüzden “hello” için ders kitabındaki CRC-32/BZIP2 değeri 1931653d iken 3d653119 görünür); CRC-32 (crc32b), ZIP, gzip, PNG ve Ethernet'in kullandığı standart olandır; adler32 zlib'in kullandığı Adler-32 toplamıdır. Hepsi 32 bittir (8 onaltılık hane). Hataları tespit ederler ama kriptografik değildir: herkes aynı değeri veren farklı bir girdi üretebilir. Boş metin sonuç vermez ve sağlama toplamı boşluklar ve satır sonları dahil her karakteri kapsar.

Örnek hesaplama

Girdi: hello (5 bayt, sonunda boşluk yok). Üç sağlama toplamı şöyledir: CRC-32/BZIP2 (PHP crc32) = 3d653119, CRC-32 (crc32b) = 3610a686 ve adler32 = 062c0215. Bir dosya veya mesaj için ZIP, PNG ya da gzip'te yayımlanan değerle karşılaştırırsanız, bu araçlarla yalnızca CRC-32 (crc32b) satırı eşleşir.

Bu örneği dene →

Sık yapılan hatalar

  • CRC-32/BZIP2 satırını bir ZIP ya da PNG sağlama toplamıyla karşılaştırmak; bunlar CRC-32 (crc32b) satırını kullanır, bu yüzden değerler farklıdır.
  • Sağlama toplamını güvenli bir özet gibi görmek; çakışma üretmek çok kolaydır, bu yüzden kurcalamaya karşı bütünlük için SHA-256 kullanın.
  • Yapıştırırken sona boşluk ya da satır sonu eklemek; bu her değeri değiştirir.
  • Bir dosyanın sağlama toplamını adından beklemek; araç yalnızca yazılan metni özetler.
  • Metin kodlamalarını karıştırmak; aynı görünen metnin UTF-8 ve başka bir kodlamadaki baytları ve dolayısıyla sağlama toplamı farklıdır.

Kaynaklar

Bu hesaplama hakkında

Bu hesaplayıcı herhangi bir metnin CRC-32/BZIP2 (PHP'nin crc32'si), CRC-32 (zlib, gzip ve PNG'nin kullandığı; PHP'nin crc32b'si) ve Adler-32 sağlama toplamlarını hesaplar — bunlar, polinom bölmesiyle (CRC) ya da basit bir modüler toplamla (Adler-32) üretilen kısa sayısal "parmak izleridir" ve verideki kazara değişiklikleri tespit etmenizi sağlar. Girdinin tek bir biti bile değişse, sağlama toplamı da neredeyse her zaman değişir.

Yazılım mühendisleri ve ağ protokolü tasarımcıları, CRC-32'yi ZIP ve PNG gibi formatlarda dosya bütünlüğünü doğrulamak ve Ethernet çerçevelerinde hata denetimi için kullanır; Adler-32 ise zlib ile sıkıştırılmış verilerde daha hızlı ve daha düşük maliyetli bir alternatif olarak kullanılır. Metninizi yapıştırarak üç sağlama toplamını aynı anda karşılaştırma veya hata ayıklama için alın.

Bu faydalı oldu mu?

En fazla 3 tepki seçebilirsiniz.

Yorumlar (1)

  • Editör ekibi

    Başka bir araçla karşılaştırırken eşleşen satır crc32b'dir; Python'daki zlib.crc32 ile aynı değeri verir, ama Python onluk sayı yazar: hello için 907060870 çıkar, bu onaltılıkta 3610a686'dır. Yani iki değerin farklı olduğuna karar vermeden önce aynı tabana çevirin. Adler-32 için de aynı kural geçerlidir. Hangi araç ya da dille karşılaştırıyorsunuz? Kısa bir deneme metni için onun ne yazdırdığını ve burada ne gördüğünüzü paylaşabilirsiniz.

Popüler hesaplayıcılar

Tüm Hesaplayıcılar