Kalkulator Kod Hash CRC-32C
Diterbitkan: 19 Mac 2025 pada 8:52:20 PTG UTC
Kalkulator kod cincang yang menggunakan fungsi cincang CRC-32C (Cyclic Redundancy Check 32 bit, varian C) untuk mengira kod cincang berdasarkan input teks atau muat naik fail.CRC-32C 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-32C, yang merupakan versi yang lebih baharu, "lebih pintar" (pengesanan ralat yang lebih baik) yang selalunya dipercepatkan perkakasan pada CPU moden (melalui SSE 4.2).
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.
Tentang Algoritma Hash CRC-32C
Saya bukan ahli matematik, tetapi saya akan cuba menerangkan fungsi hash ini dengan analogi yang mudah. Berbeza dengan banyak fungsi hash kriptografi, ia bukan algoritma yang terlalu rumit, jadi ia mungkin akan ok ;-)
Bayangkan anda menghantar surat melalui pos, tetapi anda risau ia mungkin rosak sebelum sampai kepada penerima. Berdasarkan kandungan surat tersebut, anda mengira checksum CRC-32 dan menulisnya pada sampul surat. Apabila penerima menerima surat tersebut, dia juga boleh mengira checksum dan melihat jika ia sepadan dengan apa yang anda tulis. Jika ia sepadan, surat tersebut tidak rosak atau diubah sepanjang perjalanan.
Cara CRC-32 melakukan ini adalah melalui proses empat langkah:
Langkah 1: Tambah Ruang Tambahan (Padding)
- CRC menambah sedikit ruang tambahan di hujung mesej (seperti kacang pembungkusan dalam kotak).
- Ini membantu ia mengesan kesilapan dengan lebih mudah.
Langkah 2: Pembaris Ajaib (Polinomial)
- CRC-32 menggunakan "pembaris ajaib" khas untuk mengukur data.
- Bayangkan pembaris ini seperti corak benjolan dan alur (ini adalah polinomial, tetapi jangan risau tentang perkataan itu).
- “Pembaris” yang paling biasa untuk CRC-32 adalah corak tetap.
Langkah 3: Gelongsor Pembaris (Proses Pembahagian)
- Sekarang CRC menggelongsorkan pembaris merentasi mesej.
- Di setiap titik, ia memeriksa jika benjolan dan alur sejajar.
- Jika ia tidak sejajar, CRC membuat catatan (ini dilakukan menggunakan XOR yang mudah, seperti menghidupkan atau mematikan suis).
- Ia terus menggelongsor dan menukar suis sehingga ia mencapai hujung.
Langkah 4: Keputusan Akhir (Checksum)
- Setelah menggelongsor pembaris merentasi keseluruhan mesej, anda akan mendapat nombor kecil (32 bit panjang) yang mewakili data asal.
- Nombor ini seperti cap jari unik untuk mesej tersebut.
- Ini adalah checksum CRC-32.
Versi yang dipersembahkan pada halaman ini adalah varian CRC-32C, yang sepatutnya menjadi varian pilihan, terutamanya jika anda menggunakan CPU yang mempunyai pemacuan perkakasan (SSE 4.2 dan lebih baru) dan anda tidak memerlukan keserasian dengan varian lain.
Saya juga mempunyai kalkulator untuk varian lain: