DevToys Web Pro iconDevToys Web Proบล็อก
ให้คะแนนเรา:
ลองใช้ส่วนขยายเบราว์เซอร์:

เครื่องคำนวณเช็กซัม

  • โหมด:
    CRC-8
  • 87 (135)
    CRC-16
  • FA4D (64077)
    CRC-24
  • DF8BCE (14650318)
    CRC-32
  • EC4AC3D0 (3964322768)
    Adler-32
  • 1F9E046A (530449514)
    รายละเอียดทางเทคนิค

    เครื่องคำนวณเช็กซัมทำงานอย่างไร

    เครื่องมือนี้ทำอะไร

    เครื่องคำนวณเช็กซัมคำนวณเช็กซัมแบบไม่ใช่คริปโตเพื่อการตรวจสอบความถูกต้องของข้อมูล (data integrity) รองรับอัลกอริทึม CRC-16, CRC-24, CRC-32, Adler-32 และ Luhn รองรับทั้งข้อความธรรมดาและอินพุตไบต์แบบเลขฐานสิบหก (hex) แบบดิบ ทำให้คุณตรวจสอบเช็กซัมกับโปรโตคอลเครือข่าย ฟอร์แมตไฟล์ และหมายเลขระบุตัวตนได้ ผลลัพธ์แสดงทั้งแบบเลขฐานสิบหกและฐานสิบเพื่อให้เทียบกับเอกสารสเปกได้ง่าย

    กรณีการใช้งานทั่วไปของนักพัฒนา

    นักพัฒนาใช้เครื่องคำนวณ CRC เมื่อดีบักโปรโตคอลเครือข่าย (Ethernet ใช้ CRC-32, PPP ใช้ CRC-16) ตรวจสอบความสมบูรณ์ของไฟล์ในฟอร์แมตอาร์ไคฟ์อย่าง ZIP และ PNG หรือยืนยันหมายเลขระบุตัวตนด้วย Luhn (บัตรเครดิต, IMEI) วิศวกรระบบฝังตัวใช้เครื่องมือนี้เพื่อตรวจสอบว่าอิมพลีเมนเทชัน CRC ให้ผลลัพธ์ตรงตามที่คาดไว้ก่อนแฟลชเฟิร์มแวร์หรือทดสอบเฟรมการสื่อสารแบบอนุกรม

    รูปแบบข้อมูล ชนิด หรือรูปแบบย่อย

    CRC-16 (CCITT) ให้เช็กซัม 16 บิตที่ใช้ใน XMODEM, Bluetooth และ USB CRC-32 (ISO 3720) ให้ค่า 32 บิตที่ใช้ใน Ethernet, ZIP และ PNG Adler-32 เป็นทางเลือกที่เร็วกว่า CRC-32 และใช้ใน zlib Luhn mod-10 ไม่ใช่ CRC แต่เป็นอัลกอริทึมเช็กดิจิต (check-digit) ที่ใช้ตรวจสอบหมายเลขบัตรเครดิต รหัส ISIN และหมายเลข IMEI โหมดอินพุตแบบ hex ช่วยให้คุณป้อนลำดับไบต์ดิบเพื่อการตรวจสอบระดับโปรโตคอล

    ข้อผิดพลาดที่พบบ่อยและกรณีขอบ

    อัลกอริทึม CRC มีหลายเวอร์ชันทั้งพหุนามและค่าเริ่มต้น — CRC-16-CCITT แตกต่างจาก CRC-16-IBM ดังนั้นควรยืนยันเสมอว่าโปรโตคอลต้องการเวอร์ชันใด เช็กซัมตรวจจับความเสียหายโดยบังเอิญได้ แต่ไม่มีความปลอดภัยต่อการดัดแปลงโดยเจตนา; สำหรับกรณีนั้นให้ใช้แฮชแบบคริปโต เมื่อใช้โหมดอินพุตแบบ hex ให้แน่ใจว่าป้อนไบต์โดยไม่มีตัวคั่นหรือใช้รูปแบบที่สม่ำเสมอ เพราะหากมี nibble เกินมาหนึ่งตัวจะทำให้ไบต์ถัด ๆ ไปทั้งหมดเลื่อนตำแหน่ง

    เมื่อใดควรใช้เครื่องมือนี้แทนการเขียนโค้ด

    ใช้เครื่องมือบนเบราว์เซอร์นี้สำหรับการตรวจเช็กแบบรวดเร็วระหว่างดีบักเฟรมของโปรโตคอล การตรวจสอบหมายเลขบัตรเครดิตหนึ่งหมายเลขด้วย Luhn หรือการเปรียบเทียบผลลัพธ์ CRC กับสเปก สำหรับการตรวจสอบไฟล์จำนวนมาก พายป์ไลน์ CI หรือการบิลด์เฟิร์มแวร์แบบฝังตัว ให้ใช้ไลบรารี CRC ที่เป็นเนทีฟของภาษา (zlib.crc32 ของ Python, แพ็กเกจ crc ของ Node ที่อิง Buffer) ซึ่งสามารถประมวลผลสตรีมและผสานเข้ากับเวิร์กโฟลว์อัตโนมัติได้