Tilfeldig CURP-generator for testing og validering

Generer gyldige, tilfeldige CURP-er (Clave Única de Registro de Población) for testformål. Dette verktøyet lager CURP-er som overholder offisiell meksikansk format og valideringsregler, uten å bruke ekte personlig informasjon.

Generer CURP

📚

Dokumentasjon

CURP Generator

Introduksjon

CURP (Clave Única de Registro de Población) er en unik alfanumerisk kode som brukes i Mexico for identifikasjonsformål. Dette verktøyet genererer gyldige, tilfeldige CURP-er for testscenarier, i samsvar med det offisielle formatet og valideringsreglene. Det er viktig å merke seg at disse genererte CURP-ene ikke er knyttet til virkelige individer og kun skal brukes til testformål.

Struktur av CURP

En CURP består av 18 tegn i følgende format:

  1. Første bokstav av etternavnet til far
  2. Første vokal av etternavnet til far (unntatt første bokstav)
  3. Første bokstav av etternavnet til mor
  4. Første bokstav av fornavnet 5-10. Fødselsdato (YYMMDD-format)
  5. Kjønn (H for mann, M for kvinne) 12-13. To-bokstavers kode for fødselsstat 14-16. Første interne konsonant av hver navnekomponent (paternal etternavn, maternal etternavn, fornavn)
  6. Differensieringsdigit (0-9 for personer født før 2000, A-Z for de som er født fra 2000 og utover)
  7. Sjekkdigit (0-9)

Algoritme for å generere en tilfeldig CURP

  1. Generer tilfeldige bokstaver for navnekomponenter
  2. Generer en tilfeldig fødselsdato
  3. Velg tilfeldig kjønn
  4. Velg tilfeldig en gyldig statskode
  5. Generer tilfeldige konsonanter for interne navnekomponenter
  6. Bestem differensieringsdigit basert på fødselsåret
  7. Beregn sjekkdigit
  8. Kombiner alle komponentene for å danne CURP-en

Valideringsregler

  • Alle alfabetiske tegn må være store bokstaver
  • Fødselsdatoen må være en gyldig dato (inkludert skuddårsconsiderasjoner)
  • Statskoden må være en gyldig mexicansk statskode
  • Differensieringsdigit må samsvare med fødselsåret
  • Sjekkdigit må være korrekt beregnet
  • Håndter spesielle tilfeller for navn (f.eks. ett-bokstavers etternavn, navn med Ñ)

Bruksområder

  1. Programvaretesting: Utviklere kan bruke dette verktøyet til å generere gyldige CURP-er for testing av brukerregistreringssystemer, databaseoperasjoner eller programvare som krever CURP-inndata.

  2. Dataprivacy: Når man demonstrerer programvare eller presenterer data, hjelper det å bruke tilfeldig genererte CURP-er for å beskytte enkeltpersoners personvern.

  3. Ytelsestesting: Generer store sett med unike CURP-er for å teste systemytelse under belastning.

  4. Opplæring og utdanning: Bruk genererte CURP-er i utdanningsmateriell om mexicanske identifikasjonssystemer uten å bruke ekte personopplysninger.

Historie om CURP i Mexico

CURP-systemet ble introdusert i 1996 av den meksikanske regjeringen som en del av et forsøk på å modernisere og standardisere personlig identifikasjon. Det erstattet ulike andre identifikasjonssystemer og ble et viktig element i meksikansk byråkrati, brukt til alt fra skoleinnmelding til skatteinnlevering.

I løpet av årene har CURP-systemet gjennomgått flere modifikasjoner:

  • I 2011 ble differensieringsdigit introdusert for å skille mellom personer født før og etter 2000.
  • I 2012 ble algoritmen for beregning av sjekkdigit endret for å forbedre unikhet.

Eksempler

Her er kodeeksempler for å generere tilfeldige CURP-er i forskjellige programmeringsspråk:

1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6    # Generer navnekomponenter
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    # Generer fødselsdato
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    # Generer kjønn
18    gender = random.choice(['H', 'M'])
19
20    # Generer statskode
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    # Generer konsonanter
25    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27    # Generer differensieringsdigit
28    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30    # Generer sjekkdigit (forenklet for dette eksemplet)
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## Generer og skriv ut en tilfeldig CURP
36print(generate_curp())
37

Alternativer i andre land

Mens CURP er unikt for Mexico, har andre land lignende identifikasjonssystemer:

  1. USA: Social Security Number (SSN)
  2. Canada: Social Insurance Number (SIN)
  3. India: Aadhaar Number
  4. Brasil: Cadastro de Pessoas Físicas (CPF)

Hvert system har sin egen struktur og regler, men de tjener lignende formål i sine respektive land.

Referanser

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