คำจำกัดความ
เลขบัตรประชาชน 13 หลักคืออะไร?
เลขประจำตัวประชาชน 13 หลัก (Thai National ID) เป็นรหัสเฉพาะบุคคลที่กรมการปกครองออกให้คนสัญชาติไทยและผู้ได้รับสัญชาติ ออกครั้งแรกปี พ.ศ. 2527 และใช้เป็นเลขอ้างอิงในเอกสารราชการ การธนาคาร และบริการออนไลน์ทั่วประเทศ
โครงสร้างเลข 13 หลักแบ่งเป็น 5 ส่วน: ประเภทบุคคล (1) / รหัสจังหวัด+อำเภอ (4) / รหัสกลุ่มบุคคล (5) / ลำดับที่ (2) / check digit (1) หลักสุดท้ายคือตัวตรวจสอบความถูกต้องของทั้งชุดเลข
Check Digit
อัลกอริทึมตรวจ Check Digit
หลักการ: คูณเลข 12 หลักแรกด้วยน้ำหนัก 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 แล้วรวมผลคูณ นำไป mod 11 และเอา 11 ลบผลที่ได้ mod 10 = check digit ที่ถูกต้อง
- 1 คูณเลขหลักที่ 1 × 13, หลักที่ 2 × 12, ... , หลักที่ 12 × 2
- 2 รวมผลคูณทั้งหมด เป็น S
- 3 คำนวณ (11 − (S mod 11)) mod 10 = check digit
- 4 ถ้าค่า check digit ที่คำนวณตรงกับหลักที่ 13 แสดงว่าเลขถูกต้อง
โครงสร้าง
โครงสร้างเลข 13 หลัก
- หลักที่ 1 — ประเภทบุคคล (0=ชาวต่างด้าว/ไร้สถานะ, 1-2=คนไทยเกิดก่อน/หลัง พ.ศ. 2527, 3-8=กลุ่มพิเศษต่างๆ)
- หลักที่ 2-3 — รหัสจังหวัดที่แจ้งเกิด/ขึ้นทะเบียน (10 = กรุงเทพฯ)
- หลักที่ 4-5 — รหัสอำเภอ/เขต
- หลักที่ 6-10 — รหัสกลุ่มบุคคลในทะเบียนราษฎร
- หลักที่ 11-12 — ลำดับที่ในกลุ่ม
- หลักที่ 13 — Check Digit ตรวจสอบความถูกต้อง
- ตรวจ validation ฟอร์มสมัครสมาชิกหรือลงทะเบียนบริการออนไลน์ก่อนส่งไปเซิร์ฟเวอร์
- ตรวจ typo เวลากรอกเอกสารที่ต้องใช้เลขบัตรประชาชนจำนวนมาก
- ทดสอบระบบในขั้น dev ว่า regex / algorithm ตรวจสอบถูกต้อง
- ตรวจคร่าวๆ ว่าเลขที่ได้รับมาจากลูกค้าไม่ได้ generate แบบมั่ว
- ใช้ในงานบัญชี HR หรือโรงพยาบาลที่ต้องบันทึกเลขบัตรประชาชนจำนวนมาก
- Check digit ตรวจแค่รูปแบบเลข ไม่ได้ยืนยันว่าเลขนั้นมีตัวตนจริงในระบบทะเบียนราษฎร
- เลข 13 หลักเป็นข้อมูลส่วนบุคคล (PDPA) ห้ามเก็บ/ส่งต่อโดยไม่ได้รับความยินยอม
- เว็บไซต์ที่ใช้ตรวจเลขบัตรประชาชนควรทำฝั่ง client-side เท่านั้น เพื่อไม่ให้ข้อมูลรั่วไหล
- ระวังปัญหา leading zero — เลขจังหวัดอาจขึ้นต้นด้วย 0 ในบางระบบ
- เครื่องมือนี้ทำงานในเบราว์เซอร์ล้วน ไม่ส่งเลขออกไปเซิร์ฟเวอร์
เครื่องมือนี้ตรวจเฉพาะ check digit ตามอัลกอริทึมมาตรฐาน ไม่ได้ยืนยันการมีอยู่จริงของบุคคล ข้อมูลทั้งหมดทำงานในเบราว์เซอร์ ไม่ส่งออกไปเซิร์ฟเวอร์