Kalkulator Kod Hash CRC-32B
Diterbitkan: 19 Mac 2025 pada 8:50:32 PTG UTC
Kalkulator kod cincang yang menggunakan fungsi cincang CRC-32B (Cyclic Redundancy Check 32 bit, varian B) untuk mengira kod cincang berdasarkan input teks atau muat naik fail.CRC-32B Hash Code Calculator
Cyclic Redundancy Check (CRC) ialah kod pengesan ralat yang biasa digunakan untuk mengesan perubahan tidak sengaja pada data mentah. Walaupun secara teknikalnya bukan fungsi cincang kriptografi, CRC-32 sering dirujuk sebagai cincang kerana keupayaannya untuk menghasilkan output bersaiz tetap (32 bit) daripada input panjang berubah-ubah. Versi yang dibentangkan pada halaman ini ialah varian CRC-32B, yang benar-benar hanya keanehan dalam bahasa PHP yang membalikkan sedikit (little-endian vs big-endian dalam CRC-32 asal).
Pendedahan penuh: Saya tidak menulis pelaksanaan khusus fungsi cincang yang digunakan pada halaman ini. Ia adalah fungsi standard yang disertakan dengan bahasa pengaturcaraan PHP. Saya hanya membuat antara muka web untuk menjadikannya tersedia secara umum di sini untuk kemudahan.
Mengenai Algoritma Hash CRC-32B
Saya bukan seorang ahli matematik, tetapi saya akan cuba menjelaskan fungsi hash ini dengan analogi yang mudah. Berbeza dengan banyak fungsi hash kriptografi, ia bukan algoritma yang terlalu rumit, jadi ia mungkin akan okay ;-)
Bayangkan anda menghantar surat melalui pos, tetapi anda risau ia mungkin rosak sebelum sampai kepada penerima. Berdasarkan kandungan surat tersebut, anda mengira jumlah pemeriksaan CRC-32 dan menulisnya di atas sampul surat. Apabila penerima menerima surat tersebut, dia juga boleh mengira jumlah pemeriksaan tersebut dan melihat jika ia sepadan dengan apa yang anda tulis. Jika ia sepadan, surat itu tidak rosak atau diubah sepanjang perjalanan.
Cara CRC-32 melakukan ini adalah melalui proses empat langkah:
Langkah 1: Menambah Ruang Tambahan (Padding)
- CRC menambah sedikit ruang tambahan di hujung mesej (seperti kacang pembungkusan dalam kotak).
- Ini membantu ia mengesan ralat dengan lebih mudah.
Langkah 2: Pembaris Ajaib (Polinomial)
- CRC-32 menggunakan "pembaris ajaib" khas untuk mengukur data.
- Pikirkan pembaris ini seperti corak benjolan dan alur (ini adalah polinomial, tetapi jangan risau tentang perkataan itu).
- Yang paling biasa "pembaris" untuk CRC-32 adalah corak tetap.
Langkah 3: Menggelongsor Pembaris (Proses Pembahagian)
- Sekarang CRC menggelongsor pembaris melintasi mesej.
- Di setiap titik, ia memeriksa jika benjolan dan alur selari.
- Jika mereka tidak selari, CRC membuat nota (ini dilakukan dengan menggunakan XOR yang mudah, seperti menekan suis untuk hidup atau mati).
- Ia terus menggelongsor dan menekan suis sehingga sampai ke penghujung.
Langkah 4: Hasil Akhir (Jumlah Pemeriksaan)
- Setelah menggelongsor pembaris ke seluruh mesej, anda akan mendapat nombor kecil (panjang 32 bit) yang mewakili data asal.
- Nombor ini seperti cap jari unik untuk mesej tersebut.
- Ini adalah jumlah pemeriksaan CRC-32.
Versi yang dipersembahkan di halaman ini adalah varian CRC-32B, yang kebanyakannya adalah kekurangan PHP yang menukar urutan bit (little-endian vs big-endian). Anda mungkin hanya perlu menggunakan versi ini jika anda secara khusus memerlukan keserasian dengan aplikasi PHP lain yang menggunakannya.
Saya juga mempunyai kalkulator untuk varian lain: