Generator slučajnog CURP-a za testiranje podataka

Generirajte valjane, slučajne CURP-ove (Clave Única de Registro de Población) u svrhu testiranja. Ovaj alat stvara CURP-ove koji se pridržavaju službenog meksičkog formata i pravila validacije, bez korištenja stvarnih osobnih podataka.

Generiraj CURP

📚

Dokumentacija

CURP Generator

Uvod

CURP (Clave Única de Registro de Población) je jedinstveni alfanumerički kod koji se koristi u Meksiku u svrhe identifikacije. Ovaj alat generira važeće, nasumične CURP-ove za testne scenarije, u skladu s službenim formatom i pravilima validacije. Važno je napomenuti da ovi generirani CURP-ovi nisu povezani s stvarnim osobama i trebaju se koristiti samo u svrhe testiranja.

Struktura CURP-a

CURP se sastoji od 18 znakova u sljedećem formatu:

  1. Prvo slovo prezimena oca
  2. Prva samoglasnik prezimena oca (izuzevši prvo slovo)
  3. Prvo slovo prezimena majke
  4. Prvo slovo imena 5-10. Datum rođenja (YYMMDD format)
  5. Spol (H za muškarce, M za žene) 12-13. Dvije slova koda za državu rođenja 14-16. Prva unutarnja suglasnika svakog sastojka imena (prezime oca, prezime majke, ime)
  6. Diferencijalna cifra (0-9 za osobe rođene prije 2000. godine, A-Z za one rođene od 2000. godine nadalje)
  7. Kontrolna cifra (0-9)

Algoritam za generiranje nasumičnog CURP-a

  1. Generirati nasumična slova za sastojke imena
  2. Generirati nasumični datum rođenja
  3. Nasumično odabrati spol
  4. Nasumično odabrati važeći kod države
  5. Generirati nasumične suglasnike za unutarnje sastojke imena
  6. Odrediti diferencijalnu cifru na temelju godine rođenja
  7. Izračunati kontrolnu cifru
  8. Kombinirati sve sastojke kako bi se formirao CURP

Pravila validacije

  • Svi abecedni znakovi moraju biti velika slova
  • Datum rođenja mora biti važeći datum (uključujući razmatranje prijestupne godine)
  • Kod države mora biti važeći meksički kod države
  • Diferencijalna cifra mora odgovarati godini rođenja
  • Kontrolna cifra mora biti ispravno izračunata
  • Rukovati posebnim slučajevima za imena (npr. prezimena sa jednim slovom, imena s Ñ)

Upotrebe

  1. Testiranje softvera: Programeri mogu koristiti ovaj alat za generiranje važećih CURP-ova za testiranje sustava registracije korisnika, operacija baze podataka ili bilo kojeg softvera koji zahtijeva unos CURP-a.

  2. Privatnost podataka: Kada se demonstrira softver ili prezentiraju podaci, korištenje nasumično generiranih CURP-ova pomaže u zaštiti privatnosti pojedinaca.

  3. Testiranje performansi: Generirati velike skupove jedinstvenih CURP-ova za testiranje performansi sustava pod opterećenjem.

  4. Obuka i obrazovanje: Koristiti generirane CURP-ove u obrazovnim materijalima o meksičkim identifikacijskim sustavima bez korištenja stvarnih osobnih podataka.

Povijest CURP-a u Meksiku

Sistem CURP uveden je 1996. godine od strane meksičke vlade kao dio napora za modernizaciju i standardizaciju osobne identifikacije. Zamijenio je razne druge identifikacijske sustave i postao ključni element u meksičkoj birokraciji, koristi se za sve, od upisa u školu do podnošenja poreza.

Tokom godina, sistem CURP je prošao kroz nekoliko modifikacija:

  • Godine 2011. uvedena je diferencijalna cifra kako bi se razlikovale osobe rođene prije i nakon 2000. godine.
  • Godine 2012. modificiran je algoritam za izračunavanje kontrolne cifre kako bi se poboljšala jedinstvenost.

Primjeri

Evo primjera koda za generiranje nasumičnih CURP-ova u raznim programskim jezicima:

1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6    # Generirati sastojke imena
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    # Generirati datum rođenja
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    # Generirati spol
18    gender = random.choice(['H', 'M'])
19
20    # Generirati kod države
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    # Generirati suglasnike
25    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27    # Generirati diferencijalnu cifru
28    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30    # Generirati kontrolnu cifru ( pojednostavljeno za ovaj primjer)
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## Generirati i ispisati nasumični CURP
36print(generate_curp())
37

Alternativa u drugim zemljama

Iako je CURP jedinstven za Meksiko, druge zemlje imaju slične identifikacijske sisteme:

  1. Sjedinjene Američke Države: Broj socijalnog osiguranja (SSN)
  2. Kanada: Broj socijalnog osiguranja (SIN)
  3. Indija: Aadhaar broj
  4. Brazil: Cadastro de Pessoas Físicas (CPF)

Svaki sistem ima svoju strukturu i pravila, ali služe sličnim svrhama u svojim zemljama.

Reference

  1. SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Pristupljeno 4. kolovoza 2024.
  2. 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. Pristupljeno 4. kolovoza 2024.