คงเคยเห็นแบบฟอร์มในการสมัครสมาชิกของหลายๆ เว็บไซต์บังคับให้กรอกเลขที่บัตรประชาชน เช่น เว็บขายของ, เว็บประเภทเกมส์ออนไลน์, ฯลฯ ก็พลันคิดไปว่าต้องตรวจสอบโดยการติดต่อฐานข้อมูลของก ระทรวงมหาดไทยเลยเหรอนี้
อันที่จริงมันไม่ซับซ้อนอย่างที่คิด ในการตรวจสอบเลขที่บัตรประชาชนนั้นทำได้โดยการใช้ Check Digit หรือการตรวจสอบความถูกต้องโดยใช้ตัวเลขหลักสุดท้ายใน การตรวจสอบ Algorithm ของวิธีการใช้ Check Digit มีดังนี้
1. ตัวเลขบนบัตรประชาชนจะมีทั้งหมด 13 หลัก นำเลขใน 12 หลักแรก มาคูณกับเลขประจำตำแหน่ง (เลขประจำหลักได้แก่ 13 บวก 1 ลบด้วยตำแหน่งที่)
จะได้ตัวเลขประจำตำแหน่งดังนี้
ส่วนเลขหลัก 13 ที่ใช้ในการคำนวณคือจำนวนตัวเลขทั้งหมดที่ต้องการตรวจสอบ
2. หลังจากนั้นเอาผลคูณของทั้ง 12 หลักมารวมกัน แล้ว modulation (การหารเอเศษ) ด้วย 11
3. เอาเศษที่ได้จากการหารในข้อ 2 มาลบด้วย 11 เท่านี้ก็ได้เลขที่เป็น Check Digit แล้ว (ถ้าผลจากข้อ 2 ได้ 10 ให้เอาเลขหลักหน่วยเป็น Check Digit ก็คือ 0 นั้นเอง)
ตัวอย่าง 1-2345-67890-12-9
นำไปคูณเลขประจำตำแหน่ง (1*13)+(2*12)+(3*11)+(4*10)+(5*9)+(6*8)+(7*7)+(8*6 )+(9*5)+(0*4)+(1*3)+(2*2) = 352
modulation 11 .... 352%11= 0
นำ 11 ตั้งแล้วลบด้วย 0 11 - 0 = 11 เอาเลขหลักหน่วย ดังนั้น Check Digit คือ 1
อ้าว... นี้มันเลขที่บัตรประชาชนไม่ถูกต้องนี้ ที่ถูกต้องคือ 1-2345-67890-12-1
โดยหลักการคำนวนนี้ สามารถใช้กับเลข 10 หลักอย่างเลขที่บัญชีได้อีกด้วย
ตัวอย่าง 123-4-56789-6
นำไปคูณเลขประจำตำแหน่ง (1*10)+(2*9)+(3*8)+(4*7)+(5*6)+(6*5)+(7*4)+(8*3)+( 9*2) = 210
modulation 8 .... 210%8= 2
นำ 8 ตั้งแล้วลบด้วย 2.... 8 - 2 = 6 เอาเลขหลักหน่วย ดังนั้น Check Digit คือ 6 อ้าว... นี้มันเลขที่บัญชีที่ถูกต้อง
หรือไม่ค่อยชอบคำนวณ ก็ โหลดโปรแกรมได้ ที่นี่