เครื่องคำนวณรหัสแฮช CRC-32C
ที่ตีพิมพ์: 17 กุมภาพันธ์ 2025 เวลา 18 นาฬิกา 45 นาที 33 วินาที UTC
ปรับปรุงล่าสุด : 12 มกราคม 2026 เวลา 11 นาฬิกา 37 นาที 34 วินาที UTC
CRC-32C Hash Code Calculator
การตรวจสอบความซ้ำซ้อนแบบวนรอบ (Cyclic Redundancy Check หรือ CRC) เป็นรหัสตรวจจับข้อผิดพลาดที่ใช้กันทั่วไปในการตรวจจับการเปลี่ยนแปลงโดยไม่ตั้งใจของข้อมูลดิบ แม้ว่าในทางเทคนิคแล้วจะไม่ใช่ฟังก์ชันแฮชเข้ารหัสลับ แต่ CRC-32 มักถูกเรียกว่าแฮชเนื่องจากความสามารถในการสร้างเอาต์พุตขนาดคงที่ (32 บิต) จากอินพุตที่มีความยาวแปรผันได้ เวอร์ชันที่แสดงในหน้านี้คือ CRC-32C ซึ่งเป็นเวอร์ชันใหม่กว่าและ "ฉลาดกว่า" (ตรวจจับข้อผิดพลาดได้ดีกว่า) ซึ่งมักใช้การเร่งความเร็วด้วยฮาร์ดแวร์บน CPU รุ่นใหม่ๆ (ผ่าน SSE 4.2)
การเปิดเผยข้อมูลทั้งหมด: ฉันไม่ได้เขียนรายละเอียดการใช้งานฟังก์ชันแฮชที่ใช้ในหน้านี้โดยเฉพาะ ฟังก์ชันนี้เป็นฟังก์ชันมาตรฐานที่รวมอยู่ในภาษาการเขียนโปรแกรม PHP ฉันสร้างอินเทอร์เฟซเว็บเพื่อให้เผยแพร่ต่อสาธารณะเพื่อความสะดวกเท่านั้น
เกี่ยวกับอัลกอริธึมแฮช CRC-32C
ผมไม่ใช่ผู้เชี่ยวชาญด้านคณิตศาสตร์ แต่ผมจะลองอธิบายฟังก์ชันแฮชนี้ด้วยการเปรียบเทียบง่ายๆ ดูครับ ต่างจากฟังก์ชันแฮชทางด้านการเข้ารหัสลับอื่นๆ ฟังก์ชันนี้ไม่ได้เป็นอัลกอริทึมที่ซับซ้อนมากนัก ดังนั้นน่าจะเข้าใจได้นะครับ ;-)
ลองนึกภาพว่าคุณกำลังส่งจดหมายทางไปรษณีย์ แต่คุณกังวลว่าจดหมายอาจเสียหายก่อนถึงมือผู้รับ คุณจึงคำนวณค่าตรวจสอบ CRC-32 จากเนื้อหาของจดหมายและเขียนค่าตรวจสอบนั้นลงบนซองจดหมาย เมื่อผู้รับได้รับจดหมายแล้ว พวกเขาก็สามารถคำนวณค่าตรวจสอบนั้นและดูว่าตรงกับสิ่งที่คุณเขียนหรือไม่ ถ้าตรงกัน แสดงว่าจดหมายไม่เสียหายหรือถูกเปลี่ยนแปลงระหว่างทาง
วิธีการที่ CRC-32 ใช้ในการดำเนินการนี้เป็นกระบวนการสี่ขั้นตอน:
ขั้นตอนที่ 1: เพิ่มพื้นที่ว่าง (ระยะเผื่อ)
- CRC จะเพิ่มพื้นที่ว่างเล็กน้อยที่ส่วนท้ายของข้อความ (เหมือนกับการใส่เม็ดโฟมกันกระแทกในกล่อง)
- วิธีนี้ช่วยให้ตรวจจับข้อผิดพลาดได้ง่ายขึ้น
ขั้นตอนที่ 2: ไม้บรรทัดวิเศษ (พหุนาม)
- CRC-32 ใช้ "ไม้บรรทัดวิเศษ" พิเศษในการวัดข้อมูล ลองนึกภาพไม้บรรทัดนี้เหมือนกับรูปแบบของปุ่มและร่อง (นี่คือพหุนาม แต่ไม่ต้องกังวลกับคำนั้น) "ไม้บรรทัด" ที่ใช้กันทั่วไปสำหรับ CRC-32 คือรูปแบบคงที่
ขั้นตอนที่ 3: การเลื่อนไม้บรรทัด (กระบวนการหาร)
- ตอนนี้ CRC จะเลื่อนไม้บรรทัดไปตามข้อความ ในแต่ละจุด มันจะตรวจสอบว่าส่วนนูนและร่องตรงกันหรือไม่ ถ้าไม่ตรงกัน CRC จะจดบันทึก (โดยใช้การดำเนินการ XOR อย่างง่าย เหมือนกับการเปิดหรือปิดสวิตช์) มันจะเลื่อนและเปิดปิดสวิตช์ไปเรื่อยๆ จนกว่าจะถึงจุดสิ้นสุด
ขั้นตอนที่ 4: ผลลัพธ์สุดท้าย (ค่าตรวจสอบความถูกต้อง)
- หลังจากเลื่อนไม้บรรทัดไปตามข้อความทั้งหมด คุณจะได้ตัวเลขขนาดเล็ก (ยาว 32 บิต) ที่แสดงถึงข้อมูลดั้งเดิม ตัวเลขนี้เปรียบเสมือนลายนิ้วมือที่ไม่ซ้ำกันของข้อความ นี่คือค่าตรวจสอบ CRC-32
เวอร์ชันที่แสดงบนหน้าเว็บคือเวอร์ชัน CRC-32C ซึ่งควรเป็นเวอร์ชันที่แนะนำ โดยเฉพาะอย่างยิ่งหากคุณใช้ CPU ที่รองรับการเร่งความเร็วด้วยฮาร์ดแวร์ (SSE 4.2 ขึ้นไป) และไม่จำเป็นต้องใช้งานร่วมกับเวอร์ชันอื่น ๆ
ฉันมีเครื่องคิดเลขสำหรับรูปแบบอื่นๆ ด้วยเช่นกัน:
- ลิงก์
- ลิงก์
อ่านเพิ่มเติม
หากคุณชอบโพสต์นี้ คุณอาจชอบคำแนะนำเหล่านี้ด้วย:
