เครื่องคำนวณรหัสแฮช CRC-32C
ที่ตีพิมพ์: 17 กุมภาพันธ์ 2025 เวลา 18 นาฬิกา 45 นาที 33 วินาที UTC
เครื่องคำนวณรหัสแฮชที่ใช้ฟังก์ชันแฮช CRC-32C (Cyclic Redundancy Check 32 บิต รูปแบบ C) เพื่อคำนวณรหัสแฮชโดยอิงจากการป้อนข้อความหรือการอัปโหลดไฟล์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: เพิ่มช่องว่างเพิ่มเติม (Padding)
- CRC เพิ่มพื้นที่พิเศษเล็กน้อยที่ตอนท้ายข้อความ (เหมือนถั่วโฟมบรรจุในกล่อง)
- วิธีนี้จะช่วยให้ตรวจพบข้อผิดพลาดได้ง่ายขึ้น
ขั้นตอนที่ 2: ไม้บรรทัดวิเศษ (พหุนาม)
- CRC-32 ใช้ “ไม้บรรทัดวิเศษ” พิเศษเพื่อวัดข้อมูล
- ลองนึกถึงไม้บรรทัดนี้เป็นเหมือนรูปแบบของการนูนและร่อง (นี่คือพหุนาม แต่ไม่ต้องกังวลเกี่ยวกับคำนั้น)
- “ไม้บรรทัด” ที่พบมากที่สุดสำหรับ CRC-32 คือรูปแบบคงที่
ขั้นตอนที่ 3: การเลื่อนไม้บรรทัด (กระบวนการแบ่ง)
- ตอนนี้ CRC จะเลื่อนไม้บรรทัดไปบนข้อความ
- ในแต่ละจุดจะตรวจสอบว่ามีการนูนและร่องตรงกันหรือไม่
- หากไม่เรียงกัน CRC จะจดบันทึกไว้ (ทำได้โดยใช้ XOR ง่ายๆ เช่น การเปิดหรือปิดสวิตช์)
- มันเลื่อนและพลิกสวิตช์ต่อไปเรื่อย ๆ จนกระทั่งถึงจุดสิ้นสุด
ขั้นตอนที่ 4: ผลลัพธ์สุดท้าย (ผลรวมตรวจสอบ)
- หลังจากเลื่อนไม้บรรทัดไปทั่วทั้งข้อความแล้ว คุณจะเหลือตัวเลขเล็กๆ (ยาว 32 บิต) ที่แสดงถึงข้อมูลต้นฉบับ
- ตัวเลขนี้เปรียบเสมือนลายนิ้วมือที่เป็นเอกลักษณ์เฉพาะตัวของข้อความ
- นี่คือผลรวมตรวจสอบ CRC-32
เวอร์ชันที่นำเสนอในหน้านี้เป็นรุ่น CRC-32C ซึ่งควรเป็นรุ่นที่ต้องการโดยเฉพาะหากคุณกำลังใช้ CPU ที่มีการเร่งความเร็วด้วยฮาร์ดแวร์ (SSE 4.2 ขึ้นไป) และคุณไม่จำเป็นต้องเข้ากันได้กับรุ่นอื่นๆ
ฉันมีเครื่องคิดเลขสำหรับรุ่นอื่นด้วยเช่นกัน: