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