CURP Generaattori
Johdanto
CURP (Clave Única de Registro de Población) on ainutlaatuinen alfanumeerinen koodi, jota käytetään Meksikossa tunnistamistarkoituksiin. Tämä työkalu luo voimakkaita, satunnaisia CURP-koodeja testausolosuhteita varten, noudattaen virallista muotoa ja validointisääntöjä. On tärkeää huomata, että nämä luodut CURP:t eivät liity todellisiin henkilöihin ja niitä tulisi käyttää vain testaus tarkoituksiin.
CURP:n rakenne
CURP koostuu 18 merkistä seuraavassa muodossa:
- Isän sukunimen ensimmäinen kirjain
- Isän sukunimen ensimmäinen vokaali (ilman ensimmäistä kirjainta)
- Äidin sukunimen ensimmäinen kirjain
- Etunimen ensimmäinen kirjain 5-10. Syntymäpäivä (YYMMDD-muodossa)
- Sukupuoli (H miehille, N naisille) 12-13. Kaksikirjaiminen koodi syntymävaltiosta 14-16. Ensimmäinen sisäinen konsonantti jokaisesta nimen osasta (isän sukunimi, äidin sukunimi, etunimi)
- Eroavuusnumero (0-9 ennen vuotta 2000 syntyneille, A-Z vuodesta 2000 eteenpäin syntyneille)
- Tarkistusnumero (0-9)
Satunnaisen CURP:n luomisen algoritmi
- Luo satunnaiset kirjaimet nimen osille
- Luo satunnainen syntymäpäivä
- Valitse satunnaisesti sukupuoli
- Valitse satunnaisesti voimassa oleva osavaltiokoodi
- Luo satunnaiset konsonantit sisäisille nimen osille
- Määritä eroavuusnumero syntymävuoden perusteella
- Laske tarkistusnumero
- Yhdistä kaikki osat muodostaaksesi CURP:n
Validointisäännöt
- Kaikkien aakkosellisten merkkien on oltava isoja kirjaimia
- Syntymäpäivän on oltava voimassa oleva päivämäärä (mukaan lukien karkausvuoden huomioiminen)
- Osavaltiokoodin on oltava voimassa oleva meksikolainen osavaltiokoodi
- Eroavuusnumeron on vastattava syntymävuotta
- Tarkistusnumeron on oltava oikein laskettu
- Käsittele erityistapauksia nimille (esim. yksikirjaimiset sukunimet, nimet, joissa on Ñ)
Käyttötapaukset
-
Ohjelmistotestaus: Kehittäjät voivat käyttää tätä työkalua luodakseen voimakkaita CURP-koodeja käyttäjien rekisteröintijärjestelmien, tietokantaoperaatioiden tai minkä tahansa ohjelmiston testaamiseen, joka vaatii CURP-syötettä.
-
Tietosuoja: Ohjelmiston esittelyssä tai tietojen esittämisessä satunnaisesti luotujen CURP:ien käyttäminen auttaa suojaamaan yksilöiden yksityisyyttä.
-
Suorituskykytestaus: Luo suuria joukkoja ainutlaatuisia CURP:eja järjestelmän suorituskyvyn testaamiseksi kuormituksen alla.
-
Koulutus ja opetus: Käytä luotuja CURP:eja koulutusmateriaaleissa meksikolaisista tunnistusjärjestelmistä ilman todellisten henkilötietojen käyttöä.
CURP:n historia Meksikossa
CURP-järjestelmä otettiin käyttöön vuonna 1996 Meksikon hallituksen toimesta osana pyrkimystä modernisoida ja standardoida henkilökohtaista tunnistamista. Se korvasi useita muita tunnistamisjärjestelmiä ja siitä tuli tärkeä elementti meksikolaisessa byrokratiassa, jota käytetään kaikkeen koulun ilmoittamisesta verotukseen.
Vuosien varrella CURP-järjestelmää on muutettu useita kertoja:
- Vuonna 2011 eroavuusnumero otettiin käyttöön erottamaan ennen ja jälkeen 2000 syntyneet.
- Vuonna 2012 tarkistusnumeron laskentakaavaa muutettiin ainutlaatuisuuden parantamiseksi.
Esimerkit
Tässä on koodiesimerkkejä satunnaisten CURP:ien luomiseksi eri ohjelmointikielillä:
import random
import string
from datetime import datetime, timedelta
def generate_curp():
# Luo nimen osat
paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
maternal = random.choice(string.ascii_uppercase)
given = random.choice(string.ascii_uppercase)
# Luo syntymäpäivä
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")
# Luo sukupuoli
gender = random.choice(['H', 'N'])
# Luo osavaltiokoodi
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)
# Luo konsonantit
consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
# Luo eroavuusnumero
diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
# Luo tarkistusnumero (yksinkertaistettu tätä esimerkkiä varten)
check_digit = random.choice(string.digits)
return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
## Luo ja tulosta satunnainen CURP
print(generate_curp())
Vaihtoehdot muissa maissa
Vaikka CURP on ainutlaatuinen Meksikolle, muilla mailla on samankaltaisia tunnistusjärjestelmiä:
- Yhdysvallat: Sosiaaliturvatunnus (SSN)
- Kanada: Sosiaalivakuutusnumero (SIN)
- Intia: Aadhaar-numero
- Brasilia: Cadastro de Pessoas Físicas (CPF)
Jokaisella järjestelmällä on oma rakenteensa ja sääntönsä, mutta ne palvelevat samankaltaisia tarkoituksia omissa maissaan.
Viitteet
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Viitattu 4. elokuuta 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. Viitattu 4. elokuuta 2024.