Naar inhoud springen

CURP Generator - Test Mexicaanse ID-codes voor ontwikkeling

Genereer geldige test-CURPs voor Mexicaanse toepassingsontwikkeling. Gratis tool maakt willekeurige 18-tekens identificatiecodes aan volgens officieel RENAPO-formaat. Perfect voor testen, database seeding en API-validatie.

Genereer een willekeurig, syntactisch geldig voorbeeld CURP met een correcte controlecijfer.

Laadcalculator...
📚

Documentatie

Wat is een CURP-generator?

Een CURP-generator maakt een willekeurige voorbeeld-CURP, de code van 18 tekens die Mexico gebruikt om inwoners en burgers te identificeren. De uitvoer heeft de juiste structuur en een correct berekend controlecijfer, maar is niet aan een echte persoon gekoppeld. Ontwikkelaars gebruiken dergelijke hulpmiddelen om software te testen zonder iemands echte persoonsgegevens bloot te leggen.

Wat is een CURP?

CURP staat voor Clave Única de Registro de Población, oftewel unieke code van het bevolkingsregister. De code wordt uitgegeven door RENAPO (Registro Nacional de Población e Identidad), het nationale bevolkingsregister van Mexico. Bijna iedere inwoner van Mexico heeft er een. De code staat op inschrijfformulieren voor scholen, belastinggegevens, medische documenten en kiezersregistraties. De code is opgebouwd uit delen van iemands naam, geboortedatum, geslacht en geboortestaat, plus twee extra tekens die helpen onderscheid te maken tussen mensen die anders dezelfde code zouden hebben.

Structuur en indeling van de CURP

Een CURP heeft altijd 18 tekens, allemaal hoofdletters of cijfers. Elke positie heeft een vaste betekenis.

PositieBetekenis
1Eerste letter van de achternaam van vaderskant
2Eerste interne klinker van de achternaam van vaderskant (de eerste klinker na de eerste letter)
3Eerste letter van de achternaam van moederskant
4Eerste letter van de voornaam
5–6Laatste twee cijfers van het geboortejaar
7–8Geboortemaand (01–12)
9–10Geboortedag (01–31)
11Geslacht: H voor Hombre (man), M voor Mujer (vrouw)
12–13Tweelettercode voor de geboortestaat, zoals DF voor Mexico-Stad of JC voor Jalisco
14Eerste interne medeklinker van de achternaam van vaderskant
15Eerste interne medeklinker van de achternaam van moederskant
16Eerste interne medeklinker van de voornaam
17Een cijfer voor mensen die vóór 2000 zijn geboren, of een letter voor mensen die in 2000 of later zijn geboren
18Een controlecijfer dat wordt berekend uit de eerste 17 tekens

Mexico heeft 32 staatscodes in dit systeem, één voor elk van de 31 staten plus Mexico-Stad.

Wanneer de eerste vier tekens toevallig een in het Spaans als grof beschouwd woord vormen, vervangt RENAPO het tweede teken door X. Iemand met de naam Ines Bueno Estrada zou anders beginnen met BUEI, dus begint de code in plaats daarvan met BXEI. Deze generator blokkeert dezelfde 82 woorden en past dezelfde vervanging toe.

Het CURP-controlecijfer berekenen

Het 18e teken vangt type- en kopieerfouten op. Het wordt met de volgende methode berekend uit de eerste 17 tekens:

  1. Zoek elk van de eerste 17 tekens op in het alfabet 0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ. De positie in deze lijst, beginnend bij 0, is de waarde. Zo heeft 0 de waarde 0, A de waarde 10, R de waarde 28 en Z de waarde 36.
  2. Vermenigvuldig de waarde van elk teken met een gewicht. Het gewicht begint bij 18 voor het eerste teken en neemt voor elk volgend teken met één af, tot 2 voor het 17e teken.
  3. Tel de 17 producten bij elkaar op voor de som S.
  4. Het controlecijfer is (10 − (S mod 10)) mod 10.

Uitgewerkt voorbeeld

Neem een fictief persoon, Juan Pérez Ramírez, die als man is geboren op 15 maart 1985 in Jalisco.

  • Positie 1: P, de eerste letter van ‘PĂ©rez’
  • Positie 2: E, de eerste interne klinker van ‘PĂ©rez’ (de letters na de eerste zijn E, R, E, Z, dus de eerste klinker is E)
  • Positie 3: R, de eerste letter van ‘RamĂ­rez’
  • Positie 4: J, de eerste letter van ‘Juan’
  • Posities 5–10: 850315, voor 1985-03-15
  • Positie 11: H, man
  • Posities 12–13: JC, Jalisco
  • Positie 14: R, de eerste interne medeklinker van ‘PĂ©rez’
  • Positie 15: M, de eerste interne medeklinker van ‘RamĂ­rez’
  • Positie 16: N, de eerste interne medeklinker van ‘Juan’
  • Positie 17: 0, een cijfer omdat het geboortejaar vóór 2000 ligt (in echte registraties bepaalt een vaste regel welk cijfer wordt gekozen; dit voorbeeld gebruikt 0)

De eerste 17 tekens zijn PERJ850315HJCRMN0. Als de bovenstaande formule op deze tekenreeks wordt toegepast, is de som 2342. Omdat 2342 mod 10 = 2, is het controlecijfer (10 − 2) mod 10 = 8. De volledige CURP is PERJ850315HJCRMN08.

Zo werkt deze generator

De tool bouwt in enkele stappen een voorbeeld-CURP. Eerst kiest hij willekeurige letters voor het naamgedeelte en vervolgens een geboortejaar van 1940 tot en met het jaar vóór het huidige jaar, zodat de datum altijd in het verleden ligt. De dag wordt gekozen binnen het werkelijke aantal dagen van de getrokken maand, zodat 29 februari alleen in schrikkeljaren voorkomt. Geslacht en staatscode worden willekeurig gekozen. Daarna voegt de tool de drie interne medeklinkers toe, past zo nodig de vervanging van een grof woord toe, kiest een letter voor positie 17 wanneer het geboortejaar 2000 of later is en een cijfer wanneer het eerder is, en berekent hij het controlecijfer met de bovenstaande formule.

Voordat een code wordt weergegeven, controleert de tool deze opnieuw: de vorm moet overeenkomen met het patroon van 18 tekens, de maand moet 01-12 zijn, de gecodeerde datum moet op de kalender bestaan en in het verleden liggen, en het controlecijfer moet kloppen. De eeuw voor die datumcontrole komt uit positie 17, volgens dezelfde regel die RENAPO gebruikt: een cijfer betekent de 1900s, een letter de 2000s. Een code die een van deze controles niet doorstaat, wordt niet weergegeven.

Veelgebruikte toepassingen van gegenereerde CURP’s

Softwareteams gebruiken gegenereerde CURP’s om registratieformulieren, databasevelden en validatielogica te testen voordat een product voor Mexicaanse gebruikers wordt uitgebracht. Omdat de codes willekeurig zijn, kunnen ze in grote aantallen worden gemaakt voor belastingtests of om een ontwikkelingsdatabase te vullen, zonder iemands echte identificatiegegevens te gebruiken of op te slaan.

Geschiedenis van het CURP-systeem

Mexico voerde de CURP in 1996 in ter vervanging van een lappendeken aan identificatiesystemen die verschillende overheidsinstanties afzonderlijk gebruikten. Daardoor was het moeilijk om gegevens over dezelfde persoon in verschillende databases aan elkaar te koppelen. Sindsdien is een CURP vereist voor veel contacten met de overheid, waaronder schoolinschrijving, belastingaangifte en het aanvragen van een paspoort. Voor mensen die vanaf 2000 zijn geboren, vult RENAPO positie 17 met een letter in plaats van een cijfer.

Hoe de CURP zich verhoudt tot andere nationale identificatiesystemen

LandSysteemFormaat
MexicoCURP18 tekens, letters en cijfers
Verenigde StatenSocial Security Number9 cijfers
CanadaSocial Insurance Number9 cijfers
BraziliëCPF11 cijfers
IndiaAadhaar12 cijfers
SpanjeDNI/NIE8 cijfers plus een controleletter

In tegenstelling tot een puur volgnummer bevat de CURP leesbare informatie: geboortedatum, geslacht en staat. Daardoor kan worden gecontroleerd of de gecodeerde datum een echte kalenderdatum is. Dat is een van de controles die deze tool uitvoert bij het genereren van een voorbeeldcode.

Veelgestelde vragen

Waarvoor wordt een CURP-generator gebruikt?

De generator maakt een willekeurige code in hetzelfde formaat als een echte CURP, voor softwaretests, het vullen van databases en het controleren of validatielogica correct werkt.

Zijn gegenereerde CURP’s aan echte personen gekoppeld?

Nee. Elk teken wordt willekeurig gekozen of berekend uit andere willekeurige waarden. Het resultaat is niet verbonden met een echte persoon, levend of overleden.

Kan een gegenereerde CURP op een officieel formulier worden gebruikt?

Nee. Alleen RENAPO kan een geldige CURP voor een echte persoon uitgeven. Het gebruik van een gegenereerde code op een overheidsformulier, belastingaangifte of officieel document zou fraude zijn.

Waarom eindigen sommige CURP’s op positie 17 met een letter en andere met een cijfer?

Positie 17 onderscheidt mensen die anders identieke CURP’s zouden hebben. RENAPO gebruikt een cijfer voor mensen die vóór 2000 zijn geboren en een letter voor mensen die in 2000 of later zijn geboren.

Waarom heeft een CURP soms een X als tweede teken?

Omdat de eerste vier tekens anders een in het Spaans als grof beschouwd woord zouden vormen. RENAPO vervangt in dat geval het tweede teken door X, zodat BUEI BXEI wordt.

Slaat deze tool de CURP’s op die hij genereert?

Nee. De code wordt in de browser met JavaScript gegenereerd. Er wordt niets naar een server verzonden of opgeslagen.

Hoe wordt het controlecijfer berekend?

Elk van de eerste 17 tekens wordt omgezet in een getal op basis van de positie in een vast alfabet van 37 tekens, vermenigvuldigd met een gewicht van 18 tot 2 en opgeteld. Het controlecijfer is (10 − (sum mod 10)) mod 10. Zie het uitgewerkte voorbeeld hierboven.

Referenties

  1. SEGOB (SecretarĂ­a de GobernaciĂłn), officieel CURP-portaal.
  2. RENAPO (Registro Nacional de PoblaciĂłn e Identidad), Instructivo Normativo para la AsignaciĂłn de la CURP.