CURP-generator - Testa mexikanska ID-koder för utveckling
Generera giltiga test-CURP för mexikansk applikationsutveckling. Gratis verktyg skapar slumpmässiga 18-tecken identifikationskoder enligt officiell RENAPO-format. Perfekt för testning, databasseeding och API-validering.
Generera ett slumpmässigt, syntaktiskt giltigt exempel-CURP med rätt kontrollsiffra.
Dokumentation
Vad är en CURP-generator?
En CURP-generator skapar en slumpmässig exempel-CURP, den kod på 18 tecken som Mexiko använder för att identifiera invånare och medborgare. Resultatet har rätt struktur och en korrekt beräknad kontrollsiffra, men är inte kopplat till någon verklig person. Utvecklare använder verktyg som detta för att testa programvara utan att exponera någons verkliga personuppgifter.
Vad är en CURP?
CURP står för Clave Única de Registro de Población, eller unik kod i befolkningsregistret. Den utfärdas av RENAPO (Registro Nacional de Población e Identidad), Mexikos nationella befolkningsregister. Nästan alla invånare i Mexiko har en sådan. Den förekommer på skolblanketter, i skatteuppgifter, medicinska handlingar och röstregistrering. Koden byggs upp av delar av en persons namn, födelsedatum, kön och födelsedelstat, samt två extra tecken som hjälper till att skilja personer åt när de annars skulle ha samma kod.
CURP:s struktur och format
En CURP har alltid 18 tecken, alla versaler eller siffror. Varje position har en fast betydelse.
| Position | Betydelse |
|---|---|
| 1 | Första bokstaven i faderns efternamn |
| 2 | Första inre vokalen i faderns efternamn (den första vokalen efter den första bokstaven) |
| 3 | Första bokstaven i moderns efternamn |
| 4 | Första bokstaven i förnamnet |
| 5–6 | De två sista siffrorna i födelseåret |
| 7–8 | Födelsemånad (01–12) |
| 9–10 | Födelsedag (01–31) |
| 11 | Kön: H för Hombre (man), M för Mujer (kvinna) |
| 12–13 | Tvåbokstavskod för födelsedelstaten, till exempel DF för Mexico City eller JC för Jalisco |
| 14 | Första inre konsonanten i faderns efternamn |
| 15 | Första inre konsonanten i moderns efternamn |
| 16 | Första inre konsonanten i förnamnet |
| 17 | En siffra för personer födda före 2000, eller en bokstav för personer födda 2000 eller senare |
| 18 | En kontrollsiffra som beräknas utifrån de första 17 tecknen |
Mexiko har 32 delstatskoder i detta system, en för var och en av de 31 delstaterna samt Mexico City.
Om de fyra första tecknen råkar bilda ett ord som anses oanständigt på spanska ersätter RENAPO det andra tecknet med X. En person som heter Ines Bueno Estrada skulle annars börja med BUEI, så koden börjar i stället med BXEI. Den här generatorn blockerar samma 82 ord och tillämpar samma ersättning.
Så beräknas CURP:s kontrollsiffra
Det 18:e tecknet upptäcker skriv- och kopieringsfel. Det beräknas utifrån de första 17 tecknen enligt följande metod:
- Slå upp vart och ett av de första 17 tecknen i alfabetet
0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Dess position i listan, räknad från 0, är dess värde. Alltså har0värdet 0,Avärdet 10,Rvärdet 28 ochZvärdet 36. - Multiplicera varje teckens värde med en vikt. Vikten börjar på 18 för det första tecknet och minskar med ett för varje efterföljande tecken, tills den är 2 för det 17:e tecknet.
- Addera de 17 produkterna för att få summan S.
- Kontrollsiffran är
(10 − (S mod 10)) mod 10.
Löst exempel
Betrakta en fiktiv person, Juan Pérez Ramírez, född som man den 15 mars 1985 i Jalisco.
- Position 1:
P, första bokstaven i ”Pérez” - Position 2:
E, första inre vokalen i ”Pérez” (bokstäverna efter den första är E, R, E, Z, så den första vokalen är E) - Position 3:
R, första bokstaven i ”Ramírez” - Position 4:
J, första bokstaven i ”Juan” - Positionerna 5–10:
850315, för 1985-03-15 - Position 11:
H, man - Positionerna 12–13:
JC, Jalisco - Position 14:
R, första inre konsonanten i ”Pérez” - Position 15:
M, första inre konsonanten i ”Ramírez” - Position 16:
N, första inre konsonanten i ”Juan” - Position 17:
0, en siffra eftersom födelseåret är före 2000 (i riktiga register används en fast regel för att välja siffra; i detta exempel används 0)
De första 17 tecknen är PERJ850315HJCRMN0. När formeln ovan tillämpas på denna sträng blir summan 2342. Eftersom 2342 mod 10 = 2 är kontrollsiffran (10 − 2) mod 10 = 8. Den fullständiga CURP:n är PERJ850315HJCRMN08.
Så fungerar den här generatorn
Verktyget bygger en exempel-CURP i några steg. Det väljer slumpmässiga bokstäver för namndelen och sedan ett födelseår från 1940 till året före det innevarande året, så att datumet alltid ligger i det förflutna. Dagen väljs inom den faktiska längden för den valda månaden, så att den 29 februari bara förekommer under skottår. Kön och delstatskod väljs slumpmässigt. Därefter lägger verktyget till de tre inre konsonanterna, tillämpar ersättningen av oanständiga ord vid behov, väljer en bokstav för position 17 när födelseåret är 2000 eller senare och en siffra när det är tidigare, samt räknar ut kontrollsiffran med formeln ovan.
Innan en kod visas kontrollerar verktyget den på nytt: formen måste motsvara mönstret med 18 tecken, månaden måste vara 01-12, det kodade datumet måste finnas i kalendern och ligga i det förflutna, och kontrollsiffran måste stämma. Århundradet för datumkontrollen hämtas från position 17 enligt samma regel som RENAPO använder: en siffra betyder 1900-talet och en bokstav betyder 2000-talet. En kod som inte klarar någon av dessa kontroller visas inte.
Vanliga användningsområden för genererade CURP:er
Programvaruteam använder genererade CURP:er för att testa registreringsformulär, databasfält och valideringslogik innan en produkt lanseras för mexikanska användare. Eftersom koderna är slumpmässiga kan de skapas i stora mängder för belastningstestning eller för att fylla en utvecklingsdatabas, utan att någon verklig identifierande information används eller lagras.
CURP-systemets historia
Mexiko införde CURP 1996 för att ersätta en blandning av identifieringssystem som olika myndigheter använde var för sig, vilket gjorde det svårt att matcha samma persons uppgifter mellan databaser. Sedan dess har CURP blivit ett krav vid många myndighetskontakter, bland annat skolinskrivning, skattedeklaration och passansökan. För personer födda från och med 2000 fyller RENAPO position 17 med en bokstav i stället för en siffra.
Hur CURP skiljer sig från andra nationella ID-system
| Land | System | Format |
|---|---|---|
| Mexiko | CURP | 18 tecken, bokstäver och siffror |
| USA | Social Security Number | 9 siffror |
| Kanada | Social Insurance Number | 9 siffror |
| Brasilien | CPF | 11 siffror |
| Indien | Aadhaar | 12 siffror |
| Spanien | DNI/NIE | 8 siffror plus en kontrollbokstav |
Till skillnad från ett rent löpnummer innehåller CURP läsbar information: födelsedatum, kön och delstat. Det gör det möjligt att kontrollera om det kodade datumet är ett verkligt kalenderdatum, vilket är en av de kontroller som verktyget utför när det skapar en exempelkod.
Vanliga frågor och svar
Vad används en CURP-generator till?
Den skapar en slumpmässig kod i samma format som en riktig CURP, för användning vid programvarutestning, ifyllnad av databaser och kontroll av att valideringslogik fungerar korrekt.
Är genererade CURP:er kopplade till verkliga personer?
Nej. Varje tecken väljs slumpmässigt eller beräknas utifrån andra slumpmässiga värden. Resultatet är inte kopplat till någon verklig person, levande eller avliden.
Kan en genererad CURP användas på en officiell blankett?
Nej. Endast RENAPO kan utfärda en giltig CURP för en verklig person. Att använda en genererad kod på en myndighetsblankett, i en skattedeklaration eller i något annat officiellt dokument skulle vara bedrägeri.
Varför slutar vissa CURP:er med en bokstav och andra med en siffra på position 17?
Position 17 skiljer personer åt som annars skulle ha identiska CURP:er. RENAPO använder en siffra för personer födda före 2000 och en bokstav för personer födda 2000 eller senare.
Varför har en CURP ibland X som sitt andra tecken?
Därför att de fyra första tecknen annars skulle bilda ett ord som anses oanständigt på spanska. RENAPO ersätter i så fall det andra tecknet med X, så att BUEI blir BXEI.
Lagrar det här verktyget de CURP:er som det genererar?
Nej. Koden genereras i webbläsaren med JavaScript. Ingenting skickas till en server eller sparas.
Hur beräknas kontrollsiffran?
Vart och ett av de första 17 tecknen omvandlas till ett tal utifrån sin position i ett fast alfabet med 37 tecken, multipliceras med en vikt från 18 till 2 och summeras. Kontrollsiffran är (10 − (sum mod 10)) mod 10. Se det genomräknade exemplet ovan.
Referenser
- SEGOB (Secretaría de Gobernación), CURP:s officiella portal.
- RENAPO (Registro Nacional de Población e Identidad), Instructivo Normativo para la Asignación de la CURP.