สารบัญ:
คำจำกัดความ - สูตร Luhn หมายถึงอะไร
สูตร Luhn เป็นสูตรการตรวจสอบอย่างง่ายที่ใช้ในการตรวจสอบหมายเลขประจำตัวต่าง ๆ เช่นหมายเลขบัตรเครดิตหมายเลขประกันสังคมหมายเลข IMEI และอื่น ๆ อีกมากมาย อัลกอริทึมจะตรวจสอบความถูกต้องของตัวเลขเทียบกับตัวเลขการตรวจสอบที่รวมอยู่ในตัวเลขนั้นโดยทั่วไปจะเป็นตัวเลขสุดท้าย ขณะนี้สูตร Luhn อยู่ในโดเมนสาธารณะและมีการใช้กันอย่างแพร่หลายในอุตสาหกรรมต่างๆและระบุไว้ใน ISO / IEC 7812-1
สูตร Luhn ยังเป็นที่รู้จักกันในนามอัลกอริธึม Luhn, modulus 10 algorithm หรือ mod 10 algorithm
Techopedia อธิบายสูตร Luhn
สูตร Luhn ถูกคิดค้นโดย Hans Peter Luhn นักวิทยาศาสตร์ของ IBM ผู้ยื่นสิทธิบัตรสำหรับสูตรในปี 1954 ซึ่งได้รับในปี 1960 สูตรไม่ได้ถูกออกแบบมาให้เป็นฟังก์ชันแฮชที่ปลอดภัยแบบเข้ารหัส แต่เป็นวิธีที่ง่ายในการ ป้องกันข้อผิดพลาดโดยไม่ตั้งใจในการสร้างหมายเลขประจำตัวที่ไม่ซ้ำกัน หน่วยงานของรัฐและสถาบันเอกชนหลายแห่งใช้สูตรในการแยกแยะตัวเลขที่ถูกต้องจากตัวเลขที่พิมพ์ผิดไม่ถูกต้องหรือหลอกลวง
สูตรนี้ใช้เพื่อตรวจสอบความถูกต้องของตัวเลขโดยการตรวจสอบว่ามีการตรวจสอบตัวเลขที่ถูกต้อง โดยปกติแล้วเลขเช็คนี้จะแนบมากับหมายเลขบางส่วนเพื่อให้สมบูรณ์
กระบวนการต่อไปนี้คือการสร้างเช็คหลัก:
- เริ่มต้นจากหลักขวาสุดให้เพิ่มค่าเป็นสองเท่าของทุก ๆ วินาที
- หากผลิตภัณฑ์ที่ได้จากขั้นตอนแรกมากกว่า 9 ให้เพิ่มตัวเลขสองหลัก (เช่น 5 × 3 = 15, 1 + 5 = 6) หากผลลัพธ์คือ 9 หรือน้อยกว่าให้เก็บหมายเลขนั้นไว้
- รับผลรวมของตัวเลขทั้งหมด
- คูณผลรวมด้วย 9 และนำ "โมดูโล 10" ของผลรวม; ผลลัพธ์คือเลขเช็ค
ตัวอย่าง: ชุดตัวเลข 927638965
9 |
2 |
7 |
6 |
3 |
8 |
9 |
6 |
5 คือหลักตรวจสอบ |
9 |
4 |
7 |
12 |
3 |
16 |
9 |
12 |
|
9 |
4 |
7 |
3 |
3 |
7 |
9 |
3 |
รวม = 45; 45 × 9 = 405 (mod 10) = 5 |
ในการตรวจสอบว่าหมายเลขนั้นถูกต้องเพียงทำตามอัลกอริทึมที่ไม่รวมตัวเลขตรวจสอบและหากได้รับผลลัพธ์เดียวกันเป็นตัวเลขตรวจสอบหมายเลขนั้นจะถูกต้องตามสูตรของ Luhn อย่างไรก็ตามอัลกอริทึมนี้ไม่น่าเชื่อถือมากและสามารถตรวจจับข้อผิดพลาดหลักเดียวส่วนใหญ่และการถ่ายโอนของตัวเลขที่อยู่ติดกันยกเว้นการขนย้ายของลำดับสองหลัก 09 ถึง 90 อัลกอริทึมที่ซับซ้อนมากขึ้นเช่นอัลกอริทึม Verhoeff และอัลกอริทึม Damm เพื่อตรวจหาข้อผิดพลาดในการถอดความเพิ่มเติม
