CURP Generaator
Sissejuhatus
CURP (Clave Única de Registro de Población) on ainulaadne alfanumeeriline kood, mida kasutatakse Mehhikos tuvastamise eesmärkidel. See tööriist genereerib kehtivaid, juhuslikke CURPe testimise stsenaariumide jaoks, järgides ametlikku vormingut ja valideerimise reegleid. Oluline on märkida, et need genereeritud CURPid ei ole seotud reaalsete isikutega ja neid tuleks kasutada ainult testimise eesmärkidel.
CURP Struktuur
CURP koosneb 18 märgist järgmisel kujul:
- Isaperekonna esimene täht
- Isaperekonna esimene vokaal (ilma esimese täheta)
- Emaperekonna esimene täht
- Esimene täht eesnimest 5-10. Sünnikuupäev (YYMMDD vorming)
- Sugu (H meessoost, M naissoost) 12-13. Kahe tähe kood sünnikoha osariigi jaoks 14-16. Iga nime komponendi esimene sisemine konsonant (isaperekond, emaperekond, eesnimi)
- Erinevuse number (0-9 inimestele, kes on sündinud enne 2000. aastat, A-Z neile, kes on sündinud alates 2000. aastast)
- Kontrollnumber (0-9)
Juhusliku CURP genereerimise algoritm
- Genereeri juhuslikud tähed nime komponentide jaoks
- Genereeri juhuslik sünnikuupäev
- Juhuslikult vali sugu
- Juhuslikult vali kehtiv osariigi kood
- Genereeri juhuslikud konsonandid sisemiste nime komponentide jaoks
- Määra erinevuse number sünniaasta põhjal
- Arvuta kontrollnumber
- Koosta kõik komponendid, et moodustada CURP
Valideerimise reeglid
- Kõik täheline märgid peavad olema suurtähtedega
- Sünnikuupäev peab olema kehtiv kuupäev (sealhulgas liigaasta arvestamine)
- Osariigi kood peab olema kehtiv Mehhiko osariigi kood
- Erinevuse number peab vastama sünniaastale
- Kontrollnumber peab olema õigesti arvutatud
- Käsitle erijuhtumeid nimede puhul (nt ühe tähega perekonnanimed, nimed, mis sisaldavad Ñ)
Kasutuse juhtumid
-
Tarkvara testimine: Arendajad saavad seda tööriista kasutada kehtivate CURP-de genereerimiseks kasutaja registreerimissüsteemide, andmebaasi toimingute või mis tahes tarkvara testimiseks, mis nõuab CURP sisestamist.
-
Andmete privaatsus: Tarkvara demonstreerimisel või andmete esitamisel aitab juhuslikult genereeritud CURP-de kasutamine kaitsta isikute privaatsust.
-
Tulemuslikkuse testimine: Genereeri suured kogused unikaalseid CURP-e, et testida süsteemi jõudlust koormuse all.
-
Koolitus ja haridus: Kasuta genereeritud CURP-e haridusmaterjalides Mehhiko tuvastamissüsteemide kohta, ilma et kasutataks reaalset isikuandmeid.
CURP ajaloo ülevaade Mehhikos
CURP süsteem viidi Mehhikos sisse 1996. aastal Mehhiko valitsuse poolt osana jõupingutustest moderniseerida ja standardiseerida isikutuvastust. See asendas mitmed muud tuvastamissüsteemid ja sai oluliseks elemendiks Mehhiko bürokraatiaski, mida kasutatakse alates kooli registreerimisest kuni maksude esitamiseni.
Aastate jooksul on CURP süsteem läbinud mitmeid muudatusi:
-
- aastal viidi sisse erinevuse number, et eristada inimesi, kes on sündinud enne ja pärast 2000. aastat.
-
- aastal muudeti kontrollnumbri arvutamise algoritmi, et parandada unikaalsust.
Näited
Siin on koodinäited juhuslike CURP-de genereerimiseks erinevates programmeerimiskeeltes:
import random
import string
from datetime import datetime, timedelta
def generate_curp():
# Genereeri nime komponente
paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
maternal = random.choice(string.ascii_uppercase)
given = random.choice(string.ascii_uppercase)
# Genereeri sünnikuupäev
start_date = datetime(1940, 1, 1)
end_date = datetime.now()
random_date = start_date + timedelta(days=random.randint(0, (end_date - start_date).days))
date_str = random_date.strftime("%y%m%d")
# Genereeri sugu
gender = random.choice(['H', 'M'])
# Genereeri osariigi kood
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']
state = random.choice(states)
# Genereeri konsonandid
consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
# Genereeri erinevuse number
diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
# Genereeri kontrollnumber (lihtsustatud selle näite jaoks)
check_digit = random.choice(string.digits)
return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
## Genereeri ja prindi juhuslik CURP
print(generate_curp())
Alternatiivid teistes riikides
Kuigi CURP on ainulaadne Mehhikole, on teistes riikides sarnased tuvastamissüsteemid:
- Ameerika Ühendriigid: Sotsiaalkindlustuse number (SSN)
- Kanada: Sotsiaalkindlustuse number (SIN)
- India: Aadhaar number
- Brasiilia: Cadastro de Pessoas Físicas (CPF)
Igal süsteemil on oma struktuur ja reeglid, kuid need täidavad sarnaseid eesmärke oma vastavates riikides.
Viidatud allikad
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Mehhiko valitsus, https://www.gob.mx/curp/. Juurdepääs 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." Mehhiko valitsus, https://www.gob.mx/cms/uploads/attachment/file/79053/InstructivoNormativoCURP.pdf. Juurdepääs 4. aug. 2024.