Hopp til innhold

CURP Generator - Test meksikanske ID-koder for utvikling

Generer gyldige test-CURPer for meksikansk applikasjonsutvikling. Gratis verktøy som oppretter tilfeldige 18-tegns identifikasjonskoder i henhold til offisiell RENAPO-format. Perfekt for testing, databaseseeding og API-validering.

Generer et tilfeldig, syntaksisk gyldig eksempel-CURP med riktig kontrollsiffer.

Lastekalkulator...
📚

Dokumentasjon

Hva er en CURP-generator?

En CURP-generator oppretter en tilfeldig eksempel-CURP, koden på 18 tegn som Mexico bruker til å identifisere innbyggere og statsborgere. Resultatet har riktig struktur og et korrekt beregnet kontrollsiffer, men er ikke knyttet til en virkelig person. Utviklere bruker slike verktøy til å teste programvare uten å eksponere noens virkelige personopplysninger.

Hva er en CURP?

CURP står for Clave Única de Registro de Población, eller unik kode i folkeregisteret. Den utstedes av RENAPO (Registro Nacional de Población e Identidad), Mexicos nasjonale folkeregister. Nesten alle som bor i Mexico, har en slik kode. Den vises på skjemaer for skoleinnskriving, i skatteopplysninger, medisinske dokumenter og velgerregistrering. Koden er satt sammen av deler av personens navn, fødselsdato, kjønn og fødselsstat, samt to ekstra tegn som skiller personer som ellers ville fått samme kode.

CURP-struktur og format

En CURP har alltid 18 tegn, som alle er versaler eller sifre. Hver posisjon har en fast betydning.

PosisjonBetydning
1Første bokstav i fars etternavn
2Første indre vokal i fars etternavn (den første vokalen etter første bokstav)
3Første bokstav i mors etternavn
4Første bokstav i fornavnet
5–6De to siste sifrene i fødselsåret
7–8Fødselsmåned (01–12)
9–10Fødselsdag (01–31)
11Kjønn: H for Hombre (mann), M for Mujer (kvinne)
12–13Kode på to bokstaver for fødselsstaten, for eksempel DF for Mexico by eller JC for Jalisco
14Første indre konsonant i fars etternavn
15Første indre konsonant i mors etternavn
16Første indre konsonant i fornavnet
17Et siffer for personer født før 2000, eller en bokstav for personer født i 2000 eller senere
18Et kontrollsiffer beregnet ut fra de første 17 tegnene

Mexico har 32 delstatskoder i denne ordningen, én for hver av de 31 delstatene samt Mexico by.

Når de fire første tegnene tilfeldigvis danner et ord som regnes som vulgært på spansk, erstatter RENAPO det andre tegnet med X. En person som heter Ines Bueno Estrada, ville ellers begynt med BUEI, så koden begynner i stedet med BXEI. Denne generatoren blokkerer de samme 82 ordene og bruker samme erstatning.

Slik beregnes kontrollsifferet i CURP

Det 18. tegnet fanger opp skrive- og kopieringsfeil. Det beregnes ut fra de første 17 tegnene ved hjelp av denne metoden:

  1. Slå opp hvert av de første 17 tegnene i alfabetet 0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Plasseringen i denne listen, med start på 0, er tegnets verdi. Dermed har 0 verdien 0, A har verdien 10, R har verdien 28, og Z har verdien 36.
  2. Multipliser hvert tegns verdi med en vekt. Vekten starter på 18 for det første tegnet og synker med én for hvert påfølgende tegn, til den ender på 2 for det 17. tegnet.
  3. Legg sammen de 17 produktene for å få en sum, S.
  4. Kontrollsifferet er (10 − (S mod 10)) mod 10.

Regneeksempel

Tenk på en fiktiv person, Juan Pérez Ramírez, født som mann 15. mars 1985 i Jalisco.

  • Posisjon 1: P, første bokstav i «Pérez»
  • Posisjon 2: E, første indre vokal i «Pérez» (bokstavene etter den første er E, R, E, Z, så den første vokalen er E)
  • Posisjon 3: R, første bokstav i «Ramírez»
  • Posisjon 4: J, første bokstav i «Juan»
  • Posisjonene 5–10: 850315, for 1985-03-15
  • Posisjon 11: H, mann
  • Posisjonene 12–13: JC, Jalisco
  • Posisjon 14: R, første indre konsonant i «Pérez»
  • Posisjon 15: M, første indre konsonant i «Ramírez»
  • Posisjon 16: N, første indre konsonant i «Juan»
  • Posisjon 17: 0, et siffer fordi fødselsåret er før 2000 (i virkelige registre brukes en fast regel for å velge sifferet; dette eksempelet bruker 0)

De første 17 tegnene er PERJ850315HJCRMN0. Når formelen ovenfor brukes på denne strengen, blir summen 2342. Siden 2342 mod 10 = 2, blir kontrollsifferet (10 − 2) mod 10 = 8. Den fullstendige CURP-en er PERJ850315HJCRMN08.

Slik fungerer denne generatoren

Verktøyet bygger en eksempel-CURP i noen få trinn. Det velger tilfeldige bokstaver til navnedelen og deretter et fødselsår fra 1940 til året før inneværende år, slik at datoen alltid ligger i fortiden. Dagen velges innenfor det faktiske antallet dager i den valgte måneden, så 29. februar forekommer bare i skuddår. Kjønn og delstatskode velges tilfeldig. Deretter legger verktøyet til de tre indre konsonantene, bruker erstatningen for vulgære ord ved behov, velger en bokstav for posisjon 17 når fødselsåret er 2000 eller senere og et siffer når det er tidligere, og beregner kontrollsifferet med formelen ovenfor.

Før en kode vises, kontrollerer verktøyet den på nytt: Formen må samsvare med mønsteret på 18 tegn, måneden må være 01-12, den kodede datoen må finnes i kalenderen og ligge i fortiden, og kontrollsifferet må stemme. Århundret for denne datokontrollen hentes fra posisjon 17, etter samme regel som RENAPO bruker: et siffer betyr 1900-tallet, en bokstav betyr 2000-tallet. En kode som ikke består noen av disse kontrollene, vises ikke.

Vanlige bruksområder for genererte CURP-er

Programvareteam bruker genererte CURP-er til å teste registreringsskjemaer, databasefelt og valideringslogikk før de lanserer et produkt for meksikanske brukere. Fordi kodene er tilfeldige, kan de opprettes i store mengder for belastningstesting eller fylling av en utviklingsdatabase, uten å bruke eller lagre noens virkelige identitetsopplysninger.

CURP-systemets historie

Mexico innførte CURP i 1996 for å erstatte et lappeteppe av identifikasjonssystemer som ulike offentlige etater brukte hver for seg. Dette gjorde det vanskelig å koble poster for samme person på tvers av databaser. Siden da har CURP blitt et krav ved mange kontakter med offentlige myndigheter, blant annet skoleinnskriving, skatteinnlevering og søknad om pass. For personer født fra og med 2000 fyller RENAPO posisjon 17 med en bokstav i stedet for et siffer.

Hvordan CURP skiller seg fra andre nasjonale ID-systemer

LandSystemFormat
MexicoCURP18 tegn, bokstaver og sifre
USApersonnummer9 sifre
Canadapersonforsikringsnummer9 sifre
BrasilCPF11 sifre
IndiaAadhaar12 sifre
SpaniaDNI/NIE8 sifre pluss en kontrollbokstav

I motsetning til et rent sekvensnummer inneholder CURP lesbar informasjon: fødselsdato, kjønn og delstat. Dermed er det mulig å kontrollere om den kodede datoen er en faktisk kalenderdato, noe som er en av kontrollene dette verktøyet utfører når det genererer en eksempelkode.

Ofte stilte spørsmål

Hva brukes en CURP-generator til?

Den oppretter en tilfeldig kode i samme format som en ekte CURP, til bruk i programvaretesting, fylling av databaser og kontroll av at valideringslogikken fungerer korrekt.

Er genererte CURP-er knyttet til virkelige personer?

Nei. Hvert tegn velges tilfeldig eller beregnes ut fra andre tilfeldige verdier. Resultatet er ikke knyttet til noen virkelig person, levende eller død.

Kan en generert CURP brukes på et offisielt skjema?

Nei. Bare RENAPO kan utstede en gyldig CURP for en virkelig person. Å bruke en generert kode på et offentlig skjema, i en skatteinnlevering eller i et annet offisielt dokument ville være bedrageri.

Hvorfor slutter noen CURP-er med en bokstav og andre med et siffer på posisjon 17?

Posisjon 17 skiller personer som ellers ville hatt identiske CURP-er. RENAPO bruker et siffer for personer født før 2000 og en bokstav for personer født i 2000 eller senere.

Hvorfor har en CURP noen ganger X som sitt andre tegn?

Fordi de fire første tegnene ellers ville dannet et ord som regnes som vulgært på spansk. RENAPO erstatter det andre tegnet med X i slike tilfeller, slik at BUEI blir BXEI.

Lagrer dette verktøyet CURP-ene det genererer?

Nei. Koden genereres i nettleseren ved hjelp av JavaScript. Ingenting sendes til en server eller lagres.

Hvordan beregnes kontrollsifferet?

Hvert av de første 17 tegnene omgjøres til et tall basert på plasseringen i et fast alfabet på 37 tegn, multipliseres med en vekt fra 18 ned til 2 og summeres. Kontrollsifferet er (10 − (sum mod 10)) mod 10. Se det gjennomregnede eksempelet ovenfor.

Referanser

  1. SEGOB (Secretaría de Gobernación), CURPs offisielle portal.
  2. RENAPO (Registro Nacional de Población e Identidad), Instructivo Normativo para la Asignación de la CURP.