เครื่องสร้าง CURP แบบสุ่มสำหรับการทดสอบและการตรวจสอบ
สร้าง CURP ที่ถูกต้องและสุ่ม (Clave Única de Registro de Población) สำหรับวัตถุประสงค์ในการทดสอบ เครื่องมือนี้สร้าง CURP ที่เป็นไปตามรูปแบบและกฎการตรวจสอบอย่างเป็นทางการของเม็กซิโก โดยไม่ใช้ข้อมูลส่วนบุคคลจริง
สร้าง CURP
เอกสารประกอบการใช้งาน
CURP Generator
Introduction
CURP (Clave Única de Registro de Población) เป็นรหัสอัลฟาเบตที่ไม่ซ้ำกันซึ่งใช้ในเม็กซิโกเพื่อวัตถุประสงค์ในการระบุ เครื่องมือนี้สร้าง CURP ที่ถูกต้องและสุ่มสำหรับสถานการณ์การทดสอบ โดยปฏิบัติตามรูปแบบและกฎการตรวจสอบอย่างเป็นทางการ สิ่งสำคัญคือต้องทราบว่า CURP ที่สร้างขึ้นเหล่านี้ไม่ได้เชื่อมโยงกับบุคคลจริงและควรใช้เพื่อวัตถุประสงค์ในการทดสอบเท่านั้น
Structure of CURP
CURP ประกอบด้วย 18 ตัวอักษรในรูปแบบดังต่อไปนี้:
- ตัวอักษรตัวแรกของนามสกุลบิดา
- สระตัวแรกของนามสกุลบิดา (ไม่รวมตัวอักษรตัวแรก)
- ตัวอักษรตัวแรกของนามสกุลมารดา
- ตัวอักษรตัวแรกของชื่อ 5-10. วันเกิด (รูปแบบ YYMMDD)
- เพศ (H สำหรับชาย, M สำหรับหญิง) 12-13. รหัสรัฐสองตัวสำหรับสถานที่เกิด 14-16. พยัญชนะภายในตัวแรกของแต่ละส่วนของชื่อ (นามสกุลบิดา, นามสกุลมารดา, ชื่อ)
- ตัวเลขแยกแยะ (0-9 สำหรับผู้ที่เกิดก่อนปี 2000, A-Z สำหรับผู้ที่เกิดตั้งแต่ปี 2000 เป็นต้นไป)
- ตัวเลขตรวจสอบ (0-9)
Algorithm for Generating a Random CURP
- สุ่มตัวอักษรสำหรับส่วนประกอบชื่อ
- สุ่มวันเกิด
- สุ่มเลือกเพศ
- สุ่มเลือกรหัสรัฐที่ถูกต้อง
- สุ่มพยัญชนะสำหรับส่วนประกอบชื่อภายใน
- กำหนดตัวเลขแยกแยะตามปีเกิด
- คำนวณตัวเลขตรวจสอบ
- รวมส่วนประกอบทั้งหมดเพื่อสร้าง CURP
Validation Rules
- ตัวอักษรทั้งหมดต้องเป็นตัวพิมพ์ใหญ่
- วันเกิดต้องเป็นวันที่ถูกต้อง (รวมถึงการพิจารณาปีอธิกสุรทิน)
- รหัสรัฐต้องเป็นรหัสรัฐเม็กซิโกที่ถูกต้อง
- ตัวเลขแยกแยะต้องตรงกับปีเกิด
- ตัวเลขตรวจสอบต้องคำนวณอย่างถูกต้อง
- จัดการกรณีพิเศษสำหรับชื่อ (เช่น นามสกุลตัวอักษรเดียว, ชื่อที่มี Ñ)
Use Cases
-
การทดสอบซอฟต์แวร์: นักพัฒนาสามารถใช้เครื่องมือนี้เพื่อสร้าง CURP ที่ถูกต้องสำหรับการทดสอบระบบการลงทะเบียนผู้ใช้ การดำเนินการฐานข้อมูล หรือซอฟต์แวร์ใดๆ ที่ต้องการข้อมูล CURP
-
ความเป็นส่วนตัวของข้อมูล: เมื่อแสดงซอฟต์แวร์หรือเสนอข้อมูล การใช้ CURP ที่สร้างขึ้นแบบสุ่มช่วยปกป้องความเป็นส่วนตัวของบุคคล
-
การทดสอบประสิทธิภาพ: สร้างชุด CURP ที่ไม่ซ้ำกันจำนวนมากเพื่อตรวจสอบประสิทธิภาพของระบบภายใต้ภาระ
-
การฝึกอบรมและการศึกษา: ใช้ CURP ที่สร้างขึ้นในเอกสารการศึกษาเกี่ยวกับระบบการระบุในเม็กซิโกโดยไม่ใช้ข้อมูลส่วนบุคคลจริง
History of CURP in Mexico
ระบบ CURP ถูกนำเสนอในปี 1996 โดยรัฐบาลเม็กซิโกเป็นส่วนหนึ่งของความพยายามในการปรับปรุงและมาตรฐานการระบุบุคคล มันได้แทนที่ระบบการระบุอื่น ๆ หลายระบบและกลายเป็นองค์ประกอบสำคัญในระบบราชการของเม็กซิโก ซึ่งใช้สำหรับทุกอย่างตั้งแต่การลงทะเบียนโรงเรียนไปจนถึงการยื่นภาษี
ตลอดหลายปีที่ผ่านมา ระบบ CURP ได้มีการปรับเปลี่ยนหลายครั้ง:
- ในปี 2011 ตัวเลขแยกแยะถูกนำมาใช้เพื่อแยกความแตกต่างระหว่างผู้ที่เกิดก่อนและหลังปี 2000
- ในปี 2012 อัลกอริธึมในการคำนวณตัวเลขตรวจสอบได้รับการปรับเปลี่ยนเพื่อปรับปรุงความเป็นเอกลักษณ์
Examples
นี่คือตัวอย่างโค้ดเพื่อสร้าง CURP แบบสุ่มในหลายภาษาโปรแกรม:
1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6 # สร้างส่วนประกอบชื่อ
7 paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
8 maternal = random.choice(string.ascii_uppercase)
9 given = random.choice(string.ascii_uppercase)
10
11 # สร้างวันเกิด
12 start_date = datetime(1940, 1, 1)
13 end_date = datetime.now()
14 random_date = start_date + timedelta(days=random.randint(0, (end_date - start_date).days))
15 date_str = random_date.strftime("%y%m%d")
16
17 # สร้างเพศ
18 gender = random.choice(['H', 'M'])
19
20 # สร้างรหัสรัฐ
21 states = ['AS', 'BC', 'BS', 'CC', 'CL', 'CM', 'CS', 'CH', 'DF', 'DG', 'GT', 'GR', 'HG', 'JC', 'MC', 'MN', 'MS', 'NT', 'NL', 'OC', 'PL', 'QT', 'QR', 'SP', 'SL', 'SR', 'TC', 'TS', 'TL', 'VZ', 'YN', 'ZS']
22 state = random.choice(states)
23
24 # สร้างพยัญชนะ
25 consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27 # สร้างตัวเลขแยกแยะ
28 diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30 # สร้างตัวเลขตรวจสอบ (แบบง่ายสำหรับตัวอย่างนี้)
31 check_digit = random.choice(string.digits)
32
33 return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
34
35## สร้างและพิมพ์ CURP แบบสุ่ม
36print(generate_curp())
37
1function generateCURP() {
2 const vowels = 'AEIOU';
3 const consonants = 'BCDFGHJKLMNPQRSTVWXYZ';
4 const states = ['AS', 'BC', 'BS', 'CC', 'CL', 'CM', 'CS', 'CH', 'DF', 'DG', 'GT', 'GR', 'HG', 'JC', 'MC', 'MN', 'MS', 'NT', 'NL', 'OC', 'PL', 'QT', 'QR', 'SP', 'SL', 'SR', 'TC', 'TS', 'TL', 'VZ', 'YN', 'ZS'];
5
6 const randomLetter = () => String.fromCharCode(65 + Math.floor(Math.random() * 26));
7 const randomVowel = () => vowels[Math.floor(Math.random() * vowels.length)];
8 const randomConsonant = () => consonants[Math.floor(Math.random() * consonants.length)];
9
10 const paternal = randomLetter() + randomVowel();
11 const maternal = randomLetter();
12 const given = randomLetter();
13
14 const now = new Date();
15 const start = new Date(1940, 0, 1);
16 const randomDate = new Date(start.getTime() + Math.random() * (now.getTime() - start.getTime()));
17 const dateStr = randomDate.toISOString().slice(2, 10).replace(/-/g, '');
18
19 const gender = Math.random() < 0.5 ? 'H' : 'M';
20 const state = states[Math.floor(Math.random() * states.length)];
21
22 const internalConsonants = randomConsonant() + randomConsonant() + randomConsonant();
23
24 const diffDigit = parseInt(dateStr.slice(0, 2)) < 20 ?
25 Math.floor(Math.random() * 10).toString() :
26 String.fromCharCode(65 + Math.floor(Math.random() * 26));
27
28 const checkDigit = Math.floor(Math.random() * 10).toString();
29
30 return `${paternal}${maternal}${given}${dateStr}${gender}${state}${internalConsonants}${diffDigit}${checkDigit}`;
31}
32
33// สร้างและบันทึก CURP แบบสุ่ม
34console.log(generateCURP());
35
Alternatives in Other Countries
ในขณะที่ CURP เป็นเอกลักษณ์เฉพาะของเม็กซิโก ประเทศอื่น ๆ มีระบบการระบุที่คล้ายกัน:
- สหรัฐอเมริกา: หมายเลขประกันสังคม (SSN)
- แคนาดา: หมายเลขประกันสังคม (SIN)
- อินเดีย: หมายเลขอาดาร์
- บราซิล: Cadastro de Pessoas Físicas (CPF)
แต่ละระบบมีโครงสร้างและกฎของตนเอง แต่มีวัตถุประสงค์ที่คล้ายคลึงกันในประเทศของตน
References
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Accessed 4 Aug. 2024.
- RENAPO (Registro Nacional de Población e Identidad). "Instructivo Normativo para la Asignación de la Clave Única de Registro de Población." Gobierno de México, https://www.gob.mx/cms/uploads/attachment/file/79053/InstructivoNormativoCURP.pdf. Accessed 4 Aug. 2024.
คำติชม
คลิกที่ feedback toast เพื่อเริ่มให้คำแนะนำเกี่ยวกับเครื่องมือนี้
เครื่องมือที่เกี่ยวข้อง
ค้นพบเครื่องมือเพิ่มเติมที่อาจจะมีประโยชน์สำหรับการทำงานของคุณ