เครื่องตรวจสอบอัลกอริทึมของ Luhn

Luhn ตรวจสอบเฉพาะเลขตรวจสอบ ไม่ได้บอกว่าบัตรยังใช้งานอยู่

อัลกอริทึมลูห์น (ISO/IEC 7812-1) เป็นระบบตรวจสอบค่าซึ่งออกแบบมาเพื่อป้องกันการพิมพ์ผิดตัวเลขเดี่ยวในหมายเลขบัตรเครดิต รหัสระบุอุปกรณ์ IMEI รหัส SIN ของแคนาดา รหัส NPI ของสหรัฐอเมริกา และระบบการจัดลำดับหมายเลขอื่นๆ อีกหลายประเภท โดยเพียงแค่วางลำดับตัวเลขลงมา (ไม่คำนึงถึงช่องว่างหรือเครื่องหมายเส้นสาย) ระบบจะตรวจสอบว่าหมายเลขนั้นผ่านเกณฑ์หรือไม่ และดำเนินขั้นตอนการคูณสองและการรวมผลเป็นจำนวนรวม เพื่อให้คุณสามารถตรวจสอบด้วยตนเองได้หากต้องการ

วิธีการคำนวณการตรวจสอบของลูห์น

  1. 1

    สตริปที่ไม่มีตัวเลข

    จะลบช่องว่าง เครื่องหมายเส้นสาย และจุดออกไป ใช้เฉพาะตัวเลข 0 ถึง 9 เท่านั้น

  2. 2

    คูณสองของแต่ละหลักที่สองจากด้านขวา

    เริ่มจากหลักล่าสุดก่อน ตัวเลขที่อยู่ทางด้านตรงข้ามจะถูกคูณสองเท่าในทุกครั้ง

  3. 3

    นำเลขของแต่ละค่าที่ถูกคูณสองมารวมกัน

    หากผลจากการคูณสองเท่าเป็น 14 ให้เพิ่ม 1 + 4 = 5 เข้าไป ซึ่งเทียบเท่ากับการลบ 9 จากค่าที่เป็นสองเท่าของตัวเลขใดๆ ที่มากกว่าหรือเท่ากับ 10

  4. 4

    ผลรวมของค่าทั้งหมดที่ได้

    นำหลักเลขที่ถูกคูณสองและหลักเลขที่ถูกลดลงมาบวกกับหลักเลขที่ไม่ได้เปลี่ยนแปลง

  5. 5

    ตรวจสอบว่าสามารถหารด้วย 10 ได้หรือไม่

    หากผลรวมสุดท้ายเป็น 0 ตัวเลขนั้นจะผ่านการตรวจสอบ มิฉะนั้นจะถือว่าไม่ถูกต้อง

ตัวอย่างที่ใช้งานจริง

ตรวจสอบ 4539 1488 0343 6467:

ตำแหน่ง (ขวา → ซ้าย) ตัวเลข เท่าตัวหรือไม่ ค่า
1 7 ไม่ 7
2 6 ใช่ 12 → 3
3 4 ไม่ 4
4 6 ใช่ 12 → 3
5 3 ไม่ 3
6 4 ใช่ 8
7 3 ไม่ 3
8 0 ใช่ 0
9 8 ไม่ 8
10 8 ใช่ 16 → 7
11 4 ไม่ 4
12 1 ใช่ 2
13 9 ไม่ 9
14 3 ใช่ 6
15 5 ไม่ 5
16 4 ใช่ 8

ผลรวม: 80 80 ÷ 10 = 0 → ถูกต้อง

สถานที่ที่ใช้ Luhn

ระบบ ความยาว มีการป้องกันตามมาตรฐานลูห์นหรือไม่?
วีซ่า, มาสเตอร์การ์ด, ดิสคัฟเวอร์ 13–19 หลัก ใช่
American Express 15 หลัก ใช่
IMEI (รหัสประจำอุปกรณ์ GSM) 15 หลัก ใช่
ประกันสังคมของแคนาดา 9 หลัก ใช่
รหัสประจำตัวผู้ให้บริการแห่งชาติของสหรัฐอเมริกา 10 หลัก ใช่
บัตรประจำตัวประชาชนอิสราเอล (Teudat Zehut) 9 หลัก ใช่
ISBN-13 13 หลัก ไม่มี (ใช้การหาร modulo 10 โดยใช้น้ำหนัก 1 และ 3)

สิ่งที่ Luhn ตรวจพบและสิ่งที่มองข้าม

  • ตรวจพบ: ข้อผิดพลาดที่มีเพียงหลักเดียวทุกประเภท และการสลับตำแหน่งของหลักตัวเลขที่อยู่ติดกันส่วนใหญ่ (แต่ไม่ใช่ทั้งหมด)
  • ข้อผิดพลาด: การสลับตำแหน่งระหว่างตำแหน่งที่ 09 และ 90 รวมถึงคู่อื่นๆ ที่คล้ายกันหลายคู่ นี่เป็นการตรวจสอบข้อผิดพลาดทางพิมพ์ ไม่ใช่การตรวจสอบความปลอดภัย
  • ไม่ใช่ฟีเจอร์ด้านความปลอดภัย หมายเลขที่ผ่านการตรวจสอบตามมาตรฐาน Luhn สามารถสร้างขึ้นได้อย่างง่ายดาย การตรวจสอบความถูกต้องของหมายเลข PAN ที่จุดรับชำระเงินจะใช้ช่วงหมายเลขจากผู้ออกบัตร (issuer ranges), รหัส CVV, ระบบ AVS และระบบ 3-D Secure ไม่ใช่เพียงแค่รหัส Luhn เท่านั้น

คำถามที่พบบ่อย

ไม่ ระบบ Luhn เพียงแค่ตรวจสอบว่าหมายเลขดังกล่าวมีรูปแบบทางคณิตศาสตร์ที่ถูกต้องเท่านั้น โดยไม่ได้ระบุว่าบัตรนั้นได้รับการออกแล้วหรือยัง มีเงินคงเหลืออยู่หรือไม่ หรือถูกขโมยไปหรือไม่ การตรวจสอบความถูกต้องที่แท้จริงจะดำเนินการโดยผู้ออกบัตรในขณะที่มีการอนุมัติ

ใช่, หลักสุดท้ายคือตัวตรวจสอบ ซึ่งสามารถเลือกได้เสมอเพื่อให้ผลรวมหารด้วย 10 ได้ นี่คือกลไกการทำงานของเครื่องสร้างหมายเลข IMEI และหมายเลขบัตรทดสอบ

วิธีการนี้สามารถตรวจจับการแทนที่ของตัวเลขเดี่ยวได้ทุกกรณี และสามารถตรวจจับการสลับตำแหน่งของตัวเลขที่อยู่ติดกันได้ส่วนใหญ่ อย่างไรก็ตาม คู่บางคู่ (เช่น 09 ↔ 90) จะไม่ทำให้ค่าเช็คซัมเปลี่ยนแปลง สำหรับวิธีการที่มีความทนทานมากกว่า เช่น ISBN-13, Verhoeff และ Damm จะแลกความซับซ้อนของโครงสร้างไว้เพื่อเพิ่มความสามารถในการตรวจจับข้อผิดพลาด

โปรแกรมตรวจสอบนี้ทำงานได้ทั้งหมดผ่านเบราว์เซอร์ของคุณ ดังนั้นไม่มีการส่งข้อมูลใดๆ ออกไปเลย แต่การนำข้อมูล PAN แบบเรียลไทม์ไปใช้ในสถานที่ที่ไม่จำเป็นถือเป็นพฤติกรรมที่ไม่เหมาะสม ควรใช้หมายเลขสำหรับทดสอบ (เช่น 4242 4242 4242 4242) เมื่อทำการทดลอง

ลูห์นสามารถใช้งานได้กับความยาวข้อมูลใดๆ แต่จะถูกกำหนดมาตรฐานไว้สำหรับรูปแบบเฉพาะ (โดยทั่วไปคือ 9 ถึง 19 หลัก) ส่วนเครื่องมือตรวจสอบไม่มีการจำกัดความยาวของข้อมูล

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวตรวจสอบอีเมล

ตรวจสอบที่อยู่อีเมล: ตรวจไวยากรณ์ RFC 5322 ค้นหา MX เรกคอร์ดแบบเรียลไทม์ พร้อมรายละเอียดส่วนท้องถิ่น โดเมน และความยาว ไม่มีการส่งอีเมลใด ๆ

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

เครื่องมือนี้มีให้บริการในภาษาอื่น