บัตรประชาชนModulo 11Mock Dataนักพัฒนา

เจาะลึกสูตร Modulo 11 ตรวจสอบเลขบัตรประชาชน 13 หลัก พร้อมแนวทางการสร้าง Mock Data สำหรับนักพัฒนา

เลขประจำตัวประชาชน 13 หลักในประเทศไทย ไม่ใช่ตัวเลขที่สุ่มขึ้นมาอย่างไร้ความหมาย แต่มีโครงสร้างทางประชากรศาสตร์และถูกควบคุมความถูกต้องด้วยอัลกอริทึมทางคณิตศาสตร์ที่เรียกว่า Modulo 11 Checksum บทความนี้จะพาเจาะลึกทั้งสูตรการคำนวณและความหมายของแต่ละหลัก

7 นาที เผยแพร่ 18 มิ.ย. 2569อัปเดต 8 ก.ย. 2569
แชร์:f𝕏L

เขียนโดย ทีมคิดให้คุ้ม

ทีมจัดทำเครื่องมือและบทความการเงินส่วนบุคคล

ตรวจทานโดย ทีมตรวจทานสูตรคิดให้คุ้ม

สูตร สมมติฐาน และข้อจำกัดเชื่อมกับหน้าวิธีคำนวณ

สูตร Modulo 11 โครงสร้างเลขบัตรประชาชน 13 หลัก และคู่มือ Mock Data
หน้าจอเขียนโค้ดและพัฒนาโปรแกรมสำหรับนักพัฒนาในการทดสอบระบบ ภาพ: Fatos Bytyqi / Unsplash (Free License)

สรุปประเด็นสำคัญ (Key Takeaways)

  • เลขบัตรประชาชนไทย 13 หลักใช้สูตรคณิตศาสตร์ Modulo 11 ในการตรวจสอบความถูกต้องของหลักที่ 13 (Check Digit)
  • หลักที่ 1 บอกประเภทบุคคล (เช่น 1 = คนไทยแจ้งเกิดตามกำหนด, 3 = คนไทยมีชื่อในทะเบียนบ้านเดิม)
  • หลักที่ 2–3 ระบุสำนักทะเบียนจังหวัด (เช่น 10 = กรุงเทพมหานคร, 50 = เชียงใหม่)
  • นักพัฒนาและ QA ไม่ควรนำเลขบัตรประชาชนจริงของผู้อื่นมาเทสระบบเพื่อหลีกเลี่ยงความเสี่ยง PDPA แต่ควรใช้ฟังก์ชัน Generate Mock Data ที่ผ่าน Check Digit แทน

บทที่ 1

โครงสร้างตัวเลข 13 หลักมีความหมายอย่างไร

โครงสร้างเลขบัตรประชาชนไทยแบ่งออกเป็น 5 ส่วนสำคัญ:

- หลักที่ 1: ประเภทบุคคล (เช่น 1 คือ คนไทยแจ้งเกิดตามกำหนด, 2 คือ แจ้งเกิดเกินกำหนด, 3 คือ คนไทยมีชื่อในทะเบียนบ้านเดิมก่อนปี 2527, 5 คือ ได้สัญชาติไทยภายหลัง)

- หลักที่ 2–3: รหัสจังหวัดตามสำนักทะเบียน (เช่น 10 คือ กทม., 20 คือ ชลบุรี, 50 คือ เชียงใหม่)

- หลักที่ 4–5: รหัสอำเภอหรือเทศบาล

- หลักที่ 6–10: เล่มสูติบัตรหรือกลุ่มประเภทบุคคล

- หลักที่ 11–12: ลำดับที่ของบุคคลในกลุ่มนั้น

- หลักที่ 13: ตัวเลขตรวจสอบความถูกต้อง (Check Digit)

บทที่ 2

ขั้นตอนการคำนวณ Check Digit ตามสูตร Modulo 11

สูตรมาตรฐานของกระทรวงมหาดไทยมี 4 ขั้นตอนดังนี้:

1) นำตัวเลข 12 หลักแรก แต่ละหลักมาคูณด้วยน้ำหนักประจำตำแหน่ง (โดยหลักที่ 1 คูณ 13, หลักที่ 2 คูณ 12, ... หลักที่ 12 คูณ 2) 2) รวมผลคูณทั้ง 12 หลักเข้าด้วยกัน (Sum) 3) นำผลรวมมาหารเอาเศษด้วย 11 (Sum mod 11) 4) นำ 11 ตั้ง ลบด้วยเศษที่ได้ แล้วนำหลักหน่วยมาเป็น Check Digit: (11 - mod) mod 10

ตัวอย่างสูตรคำนวณ Modulo 11 สำหรับเลข 12 หลักแรก

หลักที่ 1 ถึง 12d1 × 13 + d2 × 12 + ... + d12 × 2
ผลรวมผลคูณ (Sum)รวมผลลัพธ์ทั้งหมด
หาเศษ (Mod)Sum % 11
สูตรหาหลักที่ 13(11 - Mod) % 10
ผลลัพธ์หลักที่ 13ตัวเลขโดด 0 ถึง 9

บทที่ 3

ข้อควรระวังเรื่อง PDPA และการใช้ Mock Data

ในการพัฒนาซอฟต์แวร์ (Developers, QA, Testers) บ่อยครั้งต้องทดสอบระบบฟอร์มลงทะเบียนที่มี Validation 13 หลัก

การนำเลขบัตรประชาชนของตนเอง เพื่อนร่วมงาน หรือค้นหาจากอินเทอร์เน็ตมาใส่ใน Database ทดสอบ มีความเสี่ยงสูงต่อการละเมิด พ.ร.บ. คุ้มครองข้อมูลส่วนบุคคล (PDPA)

แนวทางที่ถูกต้องและปลอดภัยที่สุดคือการใช้เครื่องมือ Generate Mock Data ที่สร้างตัวเลข 12 หลักแบบสุ่ม แล้วคำนวณหลักที่ 13 ให้ถูกต้องตามโครงสร้าง จะได้ข้อมูลเทสที่ปลอดภัยและไม่เชื่อมโยงกับบุคคลจริง

ลองคำนวณจากตัวอย่างทดสอบและสุ่มเลขบัตรประชาชนจำลอง

คำถามที่พบบ่อย

ถ้าเลขบัตรประชาชนคำนวณ Modulo 11 ผ่าน แปลว่ามีตัวตนจริงในทะเบียนราษฎร์หรือไม่

ไม่จำเป็น — อัลกอริทึม Modulo 11 เป็นเพียงการตรวจความถูกต้องเชิงโครงสร้างคณิตศาสตร์ (Syntactic check) การยืนยันว่าบุคคลมีตัวตนจริงหรือไม่ต้องตรวจสอบผ่านฐานข้อมูลของกรมการปกครองโดยตรง

ทำไมบางครั้งเลขบัตรประชาชนลงท้ายด้วย 0 ได้

หาก (11 - Mod) มีค่าเท่ากับ 10 หรือ 20 เมื่อนำมา mod 10 จะได้ผลลัพธ์เป็น 0 ซึ่งเป็นตัวเลขที่ถูกต้องตามหลักคณิตศาสตร์

มาตรฐานบทความนี้

ใช้ตัวอย่างตัวเลขเพื่ออธิบายแนวคิด ไม่ใช่คำแนะนำทางการเงินส่วนบุคคล

เชื่อมไปยังเครื่องมือคำนวณที่เกี่ยวข้องเพื่อให้ผู้อ่านปรับสมมติฐานเองได้

หากอัตรา ภาษี หรือเงื่อนไขสำคัญเปลี่ยน จะอัปเดตวันที่แก้ไขในบทความ