CRC-32 / ISO-HDLCPKZip · PNG · Ethernet
En yaygın CRC-32 uygulaması, aynı zamanda CRC-32b olarak da adlandırılır. 0x04C11DB7 polinomunun yansıtılmış formunu, yani 0xEDB88320'yi kullanır. Hem giriş baytları hem de çıkış, başlangıç ​​değeri ve son XOR'un her ikisi de 0xFFFFFFFF olarak ayarlanarak bit olarak yansıtılır (önce LSB).
ZIP, gzip, PNG görüntüleri, Ethernet çerçeveleri (IEEE 802.3), PKCS#7 ve birçok eski sistem tarafından yaygın olarak kullanılır. Bu fiili "varsayılan CRC-32" çeşididir.
| Polinom | 0x04C11DB7(normal) /0xEDB88320(yansıyan) |
| Başlangıç Değeri | 0xFFFFFFFF |
| Giriş Yansıması | Evet (RefIn = doğru) |
| Çıktı Yansıması | Evet (RefOut = doğru) |
| Son XOR | 0xFFFFFFFF |
| Değeri Kontrol Et | 0xCBF43926("123456789" için) |
CRC-32C / CastagnoliiSCSI · NVMe · SCTP
G. Castagnoli ve meslektaşları tarafından 1993'te önerilen bu değişken, 0x1EDC6F41 polinomunu kullanır (yansıyan form 0x82F63B78). Aynı Hamming mesafesinde, ISO-HDLC polinomundan daha güçlü patlama hatası tespiti sunar.
Donanım hızlandırma, Intel SSE4.2 ve ARM CRC32 talimatları aracılığıyla sağlanır. iSCSI, NVMe, Btrfs ve SCTP gibi modern depolama ve taşıma protokollerinde yaygın olarak kullanılır.
| Polinom | 0x1EDC6F41(normal) /0x82F63B78(yansıyan) |
| Başlangıç Değeri | 0xFFFFFFFF |
| Giriş Yansıması | Evet (RefIn = doğru) |
| Çıktı Yansıması | Evet (RefOut = doğru) |
| Son XOR | 0xFFFFFFFF |
| Değeri Kontrol Et | 0xE3069283("123456789" için) |
CRC-32 / MPEG-2MPEG-2 · DVB · ATSC
ISO-HDLC ile aynı 0x04C11DB7 polinomunu kullanır, ancak ne giriş ne de çıkışbit yansımalı(önce MSB, büyük uç). Başlangıç değeri 0xFFFFFFFF'dir ve son XOR devre dışı bırakılır (XorOut = 0x00000000).
Temel olarak MPEG-2 taşıma akışlarındaki (PAT, PMT, NIT ve ilgili tablolar) PSI/SI tabloları ve ayrıca DVB ve ATSC yayın sistemlerindeki bütünlük kontrolleri için kullanılır.
| Polinom | 0x04C11DB7 |
| Başlangıç Değeri | 0xFFFFFFFF |
| Giriş Yansıması | Hayır (RefIn = yanlış) |
| Çıktı Yansıması | Hayır (RefOut = yanlış) |
| Son XOR | 0x00000000(devre dışı) |
| Değeri Kontrol Et | 0x0376E6E7("123456789" için) |
CRC-32 / BZIP2BZip2 · AAL5 · DECT
Parametreleri MPEG-2 ile neredeyse aynıdır (polinom 0x04C11DB7, yansıma yok, başlangıç ​​değeri 0xFFFFFFFF). Tek fark birson XOR, 0xFFFFFFFF ile, her biti çevirir. CRC-32/AAL5 veya CRC-32/DECT-B olarak da bilinir.
BZip2 sıkıştırılmış dosya formatı ve ATM AAL5 protokolünün fragman sağlama toplamı alanı tarafından kullanılır.
| Polinom | 0x04C11DB7 |
| Başlangıç Değeri | 0xFFFFFFFF |
| Giriş Yansıması | Hayır (RefIn = yanlış) |
| Çıktı Yansıması | Hayır (RefOut = yanlış) |
| Son XOR | 0xFFFFFFFF |
| Değeri Kontrol Et | 0xFC891918("123456789" için) |
UTF-8 MetniVarsayılan · Genel
Girişi bir veri olarak ele alır.UTF-8string, bunu bayta dönüştürür ve ardından CRC32'yi hesaplar. Bu, düz metin, kaynak kodu, JSON ve benzeri içerik için en yaygın moddur.
Not: GBK veya UTF-16 gibi farklı bir karakter seti ile kodlanan aynı metin, farklı bir bayt akışı ve dolayısıyla farklı bir CRC32 değeri üretir. Bu araç her zaman UTF-8 kullanır.
| En İyisi | Düz metin, kaynak kodu, JSON, XML |
| Örnek | "Merhaba" →48 65 6C 6C 6F(5 bayt) |
| CJK Karakterleri | Çoğu CJK karakteri UTF-8'de 3 bayt kullanır |
Onaltılıİkili Veri · Protokol Çerçeveleri
Girdiyi ham olarak kabul ederonaltılı bayt değişmezleri. Boşluklar ve satır sonları dikkate alınmaz. Her iki onaltılık karakter bir bayt olur (00–FF).
Ağ çerçeveleri, donanım yazılımı görüntü parçaları veya bellek dökümleri gibi tam ikili veriler için CRC kontrollerine ihtiyaç duyduğunuzda kullanışlıdır. Wireshark veya hex dump çıktısını doğrudan yapıştırabilirsiniz.
| Biçim | Yalnızca0-9vea-f / A-Fizin verilir |
| Karakter Sayısı | Çift olmalıdır (bayt başına 2 karakter) |
| Örnek | 48656C6C6F= "Merhaba" (5 bayt) |
| Boşluk | Otomatik olarak yoksayıldı.48 65 6Caynıdır48656C |
Base64Kodlanmış İkili Program · Sertifikalar · Resimler
Girişi bir veri olarak ele alır.Base64 kodlu dize, kodunu ham baytlara dönüştürür ve ardından CRC32'yi hesaplar. PEM sertifikaları, JWT yükleri, Veri URI'leri ve diğer Base64 içeriği için kullanışlıdır.
Standart Base64 alfabesini destekler (A-Z a-z 0-9 + /). Dolgu karakteri=isteğe bağlıdır. URL güvenli Base64 (-_) desteklenmiyor.
| Alfabe | A-Z a-z 0-9 + / = |
| Örnek | SGVsbG8=→ "Merhaba" (5 bayt) |
| URL-güvenli | Desteklenmiyor. Değiştir-→+ve_→/ilk |
| ⚠ 1 Karakter | Geçersiz — 1 bayt oluşturmak için 6 bit yeterli değil (8 bit gerekli) |
| 2 Karakterler | Şifreyi çözer1 bayt(minimum geçerli giriş) |
| 3 Karakterler | Şifreyi çözer2 bayt |
| 4 Karakterler | Şifreyi çözer3 bayt(desen her 4 karakterde bir tekrarlanır) |
OnaltılıEn Yaygın · Varsayılan
Değeri, önüne şunun geldiği 8 basamaklı büyük harfli onaltılık sayı olarak görüntüler:0x. Her karakter, toplam 32 bit olmak üzere 4 biti temsil eder. Bu, çoğu araçta, kaynak kodunda ve dokümantasyonda kullanılan standart formattır.
Ondalık çıktıyla karşılaştırıldığında, onaltılık sayı, bayt sınırlarının incelenmesini kolaylaştırır ve bellek dökümleri ile protokol alanlarını daha doğal bir şekilde eşleştirir.
| Örnek | 0xCBF43926 |
| Uzunluk | 8 onaltılık karakterler = 32 bit |
| Taban | Temel 16 (0-9, A-F) |
| En İyisi | Kod, dokümantasyon, Wireshark, hex editörleri |
Ondalıkİmzasız 32 bit Tamsayı
Sağlama toplamını birişaretsiz 32 bit ondalık tamsayı0–4,294,967,295 (2³²−1) aralığında. Bazı diller ve araçlar CRC değerlerini ondalık biçimde karşılaştırır ve veritabanı alanları genellikle bu gösterimi saklar.
Not: CRC32 sonuçları işaretsiz tamsayılar olarak ele alınmalıdır. Java veya C# gibi imzalı int türlerinde, 0x7FFFFFFF'nin üzerindeki değerler negatif görünebilir ve uint'e veya daha geniş bir imzasız temsile dönüştürülmelidir.
| Örnek | 3421780262 |
| Aralık | 0–4,294,967,295 |
| Not | Java int için şununla dönüştürün:& 0xFFFFFFFFL |
| En İyisi | Veritabanları, Python yapı değerleri, sayısal karşılaştırma |
İkiliBit Seviyesi Analizi
Sağlama toplamını, ön eki 32 bitlik bir ikili dize olarak görüntüler.0b. Her karakter 0 veya 1'dir, soldaki en anlamlı bitle hizalanır ve gerektiğinde baştaki sıfırlarla doldurulur.
Temel olarak dahili CRC algoritmasını anlamak, polinom bölmeyi incelemek, öğretmek ve bit düzeyinde sağlama toplamı işleme gerektiren gömülü senaryoları öğrenmek için kullanışlıdır.
| Örnek | 0b11001011…00100110 |
| Uzunluk | Sol sıfır dolgusu ile 32 bitte sabitlendi |
| En Yüksek Bit | Bit 31 (MSB) en solda görünür |
| En İyisi | Algoritma analizi, öğretme, yerleşik hata ayıklama |
SekizlikUnix · Dosya Sistemleri
Sağlama toplamını, başına 11 basamaklı sekizlik sayı olarak görüntüler0o. 32 bit için en fazla 11 sekizlik karakter gereklidir çünkü 3×11 = 33 > 32. Her sekizlik basamak 3 biti temsil eder.
Sekizlik çıktı, modern CRC iş akışlarında nadir görülen bir durumdur, ancak yine de bazı Unix araçlarında, gömülü ürün yazılımı araç zincirlerinde ve daha eski iletişim protokolü spesifikasyonlarında görünmektedir.
| Örnek | 0o31572031046 |
| Uzunluk | En fazla 11 sekizlik basamak |
| Basamak Başına | 3 biti (0-7) temsil eder |
| En İyisi | Unix araçları, eski protokol spesifikasyonları |