วิธีตรวจสอบรหัสบัตรประชาชน
เราจะมีวิธีตรวจสอบรหัสบัตรประชาชนอย่างไร…
คงเคยเห็นแบบฟอร์มในการสมัครสมาชิกของหลายๆ เว็บไซต์บังคับให้กรอกเลขที่บัตรประชาชน เช่น เว็บขายของ, เว็บประเภทเกมส์ออนไลน์, ฯลฯ ก็พลันคิดไปว่าต้องตรวจสอบโดยการติดต่อฐานข้อมูลของก ระทรวงมหาดไทยเลยเหรอนี้
อันที่จริงมันไม่ซับซ้อนอย่างที่คิด ในการตรวจสอบเลขที่บัตรประชาชนนั้นทำได้โดยการใช้ Check Digit หรือการตรวจสอบความถูกต้องโดยใช้ตัวเลขหลักสุดท้ายใน การตรวจสอบ Algorithm ของวิธีการใช้ Check Digit มีดังนี้
1. ตัวเลขบนบัตรประชาชนจะมีทั้งหมด 13 หลัก นำเลขใน 12 หลักแรก มาคูณกับเลขประจำตำแหน่ง (เลขประจำหลักได้แก่ 13 บวก 1 ลบด้วยตำแหน่งที่)
จะได้ตัวเลขประจำตำแหน่งดังนี้
ตำแหน่งที่ เลขประจำตำแหน่ง การคำนวณ
1 13 13+1-1
2 12 13+1-2
3 11 13+1-3
4 10 13+1-4
5 9 13+1-5
6 8 13+1-6
7 7 13+1-7
8 6 13+1-8
9 5 13+1-9
10 4 13+1-10
11 3 13+1-11
12 2 13+1-12
** 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
อ้าว… นี้มันเลขที่บัญชีที่ถูกต้อง
ผมไม่รุ้เลขบัตครับ