Naključni CURP generator za testiranje in validacijo

Generirajte veljavne, naključne CURP-je (Clave Única de Registro de Población) za testne namene. Ta orodja ustvarja CURP-je, ki ustrezajo uradnemu mehiškemu formatu in pravilom validacije, brez uporabe resničnih osebnih podatkov.

Ustvari CURP

📚

Dokumentacija

Generátor CURP

Uvod

CURP (Clave Única de Registro de Población) je edinstvena alfanumerična koda, ki se uporablja v Mehiki za identifikacijske namene. Ta orodje generira veljavne, naključne CURP-e za testne scenarije, ki ustrezajo uradnemu formatu in pravilom validacije. Pomembno je omeniti, da ti generirani CURP-i niso povezani z resničnimi posamezniki in jih je mogoče uporabljati samo za testne namene.

Struktura CURP

CURP se sestavlja iz 18 znakov v naslednjem formatu:

  1. Prvo črko očetovega priimka
  2. Prvo samoglasnik očetovega priimka (brez prve črke)
  3. Prvo črko materinega priimka
  4. Prvo črko imena 5-10. Datum rojstva (format YYMMDD)
  5. Spol (H za moške, M za ženske) 12-13. Dvotčkovna koda za zvezno državo rojstva 14-16. Prva notranja soglasnika vsakega dela imena (očetov priimek, materin priimek, ime)
  6. Diferencirna cifra (0-9 za ljudi, rojene pred letom 2000, A-Z za tiste, rojene od leta 2000 naprej)
  7. Kontrolna cifra (0-9)

Algoritem za generiranje naključnega CURP

  1. Generirajte naključne črke za sestavne dele imena
  2. Generirajte naključni datum rojstva
  3. Naključno izberite spol
  4. Naključno izberite veljavno kodo zvezne države
  5. Generirajte naključne soglasnike za notranje sestavne dele imena
  6. Določite diferencirno cifro na podlagi leta rojstva
  7. Izračunajte kontrolno cifro
  8. Združite vse sestavne dele, da oblikujete CURP

Pravila validacije

  • Vse abecedne znake je treba pisati z velikimi črkami
  • Datum rojstva mora biti veljaven datum (vključno z upoštevanjem prestopnega leta)
  • Koda zvezne države mora biti veljavna koda mehiške zvezne države
  • Diferencirna cifra mora ustrezati letu rojstva
  • Kontrolna cifra mora biti pravilno izračunana
  • Obvladovanje posebnih primerov za imena (npr. enopostavne priimke, imena z Ñ)

Uporabniški primeri

  1. Testiranje programske opreme: Razvijalci lahko to orodje uporabijo za generiranje veljavnih CURP-ov za testiranje sistemov za registracijo uporabnikov, operacij z bazami podatkov ali katere koli programske opreme, ki zahteva vnos CURP.

  2. Zasebnost podatkov: Pri predstavitvi programske opreme ali podatkov uporaba naključno generiranih CURP-ov pomaga zaščititi zasebnost posameznikov.

  3. Testiranje zmogljivosti: Generirajte velike nize edinstvenih CURP-ov za testiranje zmogljivosti sistema pod obremenitvijo.

  4. Usposabljanje in izobraževanje: Uporabite generirane CURP-e v izobraževalnih materialih o mehiških identifikacijskih sistemih, ne da bi uporabili resničnih osebnih podatkov.

Zgodovina CURP v Mehiki

Sistem CURP je bil uveden leta 1996 s strani mehiške vlade kot del prizadevanj za modernizacijo in standardizacijo osebne identifikacije. Zamenjal je različne druge identifikacijske sisteme in postal ključni element mehiške birokracije, ki se uporablja za vse, od vpisa v šolo do davčnega poročanja.

Skozi leta je sistem CURP doživel več sprememb:

  • Leta 2011 je bila uvedena diferencirna cifra, da bi ločili med ljudmi, rojenimi pred in po letu 2000.
  • Leta 2012 je bil algoritem za izračun kontrolne cifre spremenjen, da bi izboljšali edinstvenost.

Primeri

Tukaj so primeri kode za generiranje naključnih CURP-ov v različnih programskih jezikih:

1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6    # Generirajte sestavne dele 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    # Generirajte datum rojstva
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    # Generirajte spol
18    gender = random.choice(['H', 'M'])
19
20    # Generirajte kodo zvezne 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    # Generirajte soglasnike
25    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27    # Generirajte diferencirno cifro
28    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30    # Generirajte kontrolno cifro (poenostavljeno za ta primer)
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## Generirajte in natisnite naključni CURP
36print(generate_curp())
37

Alternativen v drugih državah

Medtem ko je CURP edinstven za Mehiko, imajo druge države podobne identifikacijske sisteme:

  1. Združene države: Številka socialne varnosti (SSN)
  2. Kanada: Številka socialne pomoči (SIN)
  3. Indija: Številka Aadhaar
  4. Brazilija: Cadastro de Pessoas Físicas (CPF)

Vsak sistem ima svojo strukturo in pravila, vendar služi podobnim namenom v svojih državah.

Reference

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