วิธีตรวจสอบรหัสบัตรประชาชน

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

ไม่มีความคิดเห็น: