Náhodný generátor CURP pre testovanie a validáciu
Generujte platné, náhodné CURPy (Clave Única de Registro de Población) na testovacie účely. Tento nástroj vytvára CURPy, ktoré spĺňajú oficiálny mexický formát a pravidlá validácie, bez použitia skutočných osobných údajov.
Generovať CURP
Dokumentácia
Generátor CURP
Úvod
CURP (Clave Única de Registro de Población) je jedinečný alfanumerický kód používaný v Mexiku na identifikačné účely. Tento nástroj generuje platné, náhodné CURP pre testovacie scenáre, ktoré spĺňajú oficiálny formát a validačné pravidlá. Je dôležité poznamenať, že tieto generované CURP nie sú spojené s reálnymi osobami a mali by sa používať iba na testovacie účely.
Štruktúra CURP
CURP sa skladá z 18 znakov v nasledujúcom formáte:
- Prvá písmeno priezviska otca
- Prvá samohláska priezviska otca (s výnimkou prvého písmena)
- Prvá písmeno priezviska matky
- Prvá písmeno krstného mena 5-10. Dátum narodenia (formát YYMMDD)
- Pohlavie (H pre mužov, M pre ženy) 12-13. Dvojpísmenový kód pre štát narodenia 14-16. Prvá vnútorná spoluhláska každého komponentu mena (priezvisko otca, priezvisko matky, krstné meno)
- Rozlišovací číslo (0-9 pre osoby narodené pred rokom 2000, A-Z pre tých, ktorí sa narodili od roku 2000)
- Kontrolný číslo (0-9)
Algoritmus na generovanie náhodného CURP
- Generujte náhodné písmená pre komponenty mena
- Generujte náhodný dátum narodenia
- Náhodne vyberte pohlavie
- Náhodne vyberte platný štátny kód
- Generujte náhodné spoluhlásky pre vnútorné komponenty mena
- Určte rozlišovací číslo na základe roku narodenia
- Vypočítajte kontrolný číslo
- Kombinujte všetky komponenty na vytvorenie CURP
Pravidlá validácie
- Všetky abecedné znaky musia byť veľké písmená
- Dátum narodenia musí byť platný dátum (vrátane zohľadnenia prestupných rokov)
- Štátny kód musí byť platný mexický štátny kód
- Rozlišovací číslo musí zodpovedať roku narodenia
- Kontrolný číslo musí byť správne vypočítané
- Riešte špeciálne prípady pre mená (napr. jednolitterové priezviská, mená s Ñ)
Prípady použitia
-
Testovanie softvéru: Vývojári môžu tento nástroj použiť na generovanie platných CURP pre testovanie systémov registrácie používateľov, databázových operácií alebo akéhokoľvek softvéru, ktorý vyžaduje vstup CURP.
-
Ochrana údajov: Pri demonštrácii softvéru alebo prezentovaní údajov pomáha používanie náhodne generovaných CURP chrániť súkromie jednotlivcov.
-
Testovanie výkonu: Generujte veľké množstvá jedinečných CURP na testovanie výkonu systému pod zaťažením.
-
Školenie a vzdelávanie: Použite generované CURP v vzdelávacích materiáloch o mexických identifikačných systémoch bez použitia reálnych osobných údajov.
História CURP v Mexiku
Systém CURP bol zavedený v roku 1996 mexickou vládou ako súčasť snahy modernizovať a štandardizovať osobnú identifikáciu. Nahradil rôzne iné identifikačné systémy a stal sa kľúčovým prvkom mexickej byrokracie, používaný na všetko od zápisu do školy po podávanie daní.
V priebehu rokov prešiel systém CURP niekoľkými zmenami:
- V roku 2011 bolo zavedené rozlišovacie číslo na rozlíšenie medzi ľuďmi narodenými pred a po roku 2000.
- V roku 2012 bol algoritmus na výpočet kontrolného čísla upravený na zlepšenie jedinečnosti.
Príklady
Tu sú kódové príklady na generovanie náhodných CURP v rôznych programovacích jazykoch:
1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6 # Generujte komponenty mena
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 # Generujte dátum narodenia
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 # Generujte pohlavie
18 gender = random.choice(['H', 'M'])
19
20 # Generujte štátny kód
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 # Generujte spoluhlásky
25 consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27 # Generujte rozlišovací číslo
28 diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30 # Generujte kontrolný číslo (zjednodušené pre tento príklad)
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## Generujte a vytlačte náhodný 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// Generujte a zaznamenajte náhodný CURP
34console.log(generateCURP());
35
Alternatívy v iných krajinách
Hoci je CURP jedinečný pre Mexiko, iné krajiny majú podobné identifikačné systémy:
- Spojené štáty: Číslo sociálneho zabezpečenia (SSN)
- Kanada: Číslo sociálneho poistenia (SIN)
- India: Číslo Aadhaar
- Brazília: Cadastro de Pessoas Físicas (CPF)
Každý systém má svoju vlastnú štruktúru a pravidlá, ale slúžia podobným účelom vo svojich príslušných krajinách.
Odkazy
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Prístup 4. augusta 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. Prístup 4. augusta 2024.
Spätná väzba
Kliknite na toast so spätnou väzbou, aby ste začali dávať spätnú väzbu o tomto nástroji
Súvisiace nástroje
Objavte ďalšie nástroje, ktoré by mohli byť užitočné pre váš pracovný tok