Zufälliger CURP-Generator für Testzwecke und Validierung
Generieren Sie gültige, zufällige CURPs (Clave Única de Registro de Población) zu Testzwecken. Dieses Tool erstellt CURPs, die den offiziellen mexikanischen Format- und Validierungsregeln entsprechen, ohne echte persönliche Informationen zu verwenden.
CURP generieren
Dokumentation
CURP-Generator
Einführung
Die CURP (Clave Única de Registro de Población) ist ein einzigartiger alphanumerischer Code, der in Mexiko zu Identifikationszwecken verwendet wird. Dieses Tool generiert gültige, zufällige CURPs für Testszenarien, die dem offiziellen Format und den Validierungsregeln entsprechen. Es ist wichtig zu beachten, dass diese generierten CURPs nicht mit realen Personen verbunden sind und nur zu Testzwecken verwendet werden sollten.
Struktur der CURP
Eine CURP besteht aus 18 Zeichen im folgenden Format:
- Erster Buchstabe des väterlichen Nachnamens
- Erster Vokal des väterlichen Nachnamens (außer dem ersten Buchstaben)
- Erster Buchstabe des mütterlichen Nachnamens
- Erster Buchstabe des Vornamens 5-10. Geburtsdatum (YYMMDD-Format)
- Geschlecht (H für männlich, M für weiblich) 12-13. Zwei-Buchstaben-Code für den Geburtsstaat 14-16. Erster interne Konsonant jedes Namensbestandteils (väterlicher Nachname, mütterlicher Nachname, Vorname)
- Differenzierungsziffer (0-9 für Personen, die vor 2000 geboren wurden, A-Z für Personen, die ab 2000 geboren wurden)
- Prüfziffer (0-9)
Algorithmus zur Generierung einer zufälligen CURP
- Generiere zufällige Buchstaben für Namensbestandteile
- Generiere ein zufälliges Geburtsdatum
- Wähle zufällig das Geschlecht aus
- Wähle zufällig einen gültigen Staatscode aus
- Generiere zufällige Konsonanten für interne Namensbestandteile
- Bestimme die Differenzierungsziffer basierend auf dem Geburtsjahr
- Berechne die Prüfziffer
- Kombiniere alle Komponenten, um die CURP zu bilden
Validierungsregeln
- Alle alphabetischen Zeichen müssen in Großbuchstaben sein
- Das Geburtsdatum muss ein gültiges Datum sein (einschließlich Berücksichtigung von Schaltjahren)
- Der Staatscode muss ein gültiger mexikanischer Staatscode sein
- Die Differenzierungsziffer muss dem Geburtsjahr entsprechen
- Die Prüfziffer muss korrekt berechnet werden
- Berücksichtige Sonderfälle für Namen (z.B. einbuchstabige Nachnamen, Namen mit Ñ)
Anwendungsfälle
-
Softwaretests: Entwickler können dieses Tool verwenden, um gültige CURPs für Tests von Benutzerregistrierungssystemen, Datenbankoperationen oder jeder Software, die CURP-Eingaben erfordert, zu generieren.
-
Datenschutz: Bei der Demonstration von Software oder der Präsentation von Daten hilft die Verwendung zufällig generierter CURPs, die Privatsphäre von Personen zu schützen.
-
Leistungstests: Generiere große Mengen einzigartiger CURPs, um die Systemleistung unter Last zu testen.
-
Schulung und Bildung: Verwende generierte CURPs in Schulungsmaterialien über mexikanische Identifikationssysteme, ohne echte persönliche Daten zu verwenden.
Geschichte der CURP in Mexiko
Das CURP-System wurde 1996 von der mexikanischen Regierung eingeführt, um die persönliche Identifikation zu modernisieren und zu standardisieren. Es ersetzte verschiedene andere Identifikationssysteme und wurde zu einem entscheidenden Element in der mexikanischen Bürokratie, das für alles von der Einschreibung in Schulen bis zur Steuererklärung verwendet wird.
Im Laufe der Jahre hat das CURP-System mehrere Änderungen erfahren:
- 2011 wurde die Differenzierungsziffer eingeführt, um zwischen Personen, die vor und nach 2000 geboren wurden, zu unterscheiden.
- 2012 wurde der Algorithmus zur Berechnung der Prüfziffer geändert, um die Einzigartigkeit zu verbessern.
Beispiele
Hier sind Codebeispiele zur Generierung zufälliger CURPs in verschiedenen Programmiersprachen:
1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6 # Generiere Namensbestandteile
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 # Generiere Geburtsdatum
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 # Generiere Geschlecht
18 gender = random.choice(['H', 'M'])
19
20 # Generiere Staatscode
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 # Generiere Konsonanten
25 consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27 # Generiere Differenzierungsziffer
28 diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30 # Generiere Prüfziffer (vereinfacht für dieses Beispiel)
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## Generiere und drucke eine zufällige CURP
36print(generate_curp())
37
1function generateCURP() {
2 const vowels = 'AEIOU';
3 const consonants = 'BCDFGHJKLMNPQRSTVWXYZ';
4 const 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'];
5
6 const randomLetter = () => String.fromCharCode(65 + Math.floor(Math.random() * 26));
7 const randomVowel = () => vowels[Math.floor(Math.random() * vowels.length)];
8 const randomConsonant = () => consonants[Math.floor(Math.random() * consonants.length)];
9
10 const paternal = randomLetter() + randomVowel();
11 const maternal = randomLetter();
12 const given = randomLetter();
13
14 const now = new Date();
15 const start = new Date(1940, 0, 1);
16 const randomDate = new Date(start.getTime() + Math.random() * (now.getTime() - start.getTime()));
17 const dateStr = randomDate.toISOString().slice(2, 10).replace(/-/g, '');
18
19 const gender = Math.random() < 0.5 ? 'H' : 'M';
20 const state = states[Math.floor(Math.random() * states.length)];
21
22 const internalConsonants = randomConsonant() + randomConsonant() + randomConsonant();
23
24 const diffDigit = parseInt(dateStr.slice(0, 2)) < 20 ?
25 Math.floor(Math.random() * 10).toString() :
26 String.fromCharCode(65 + Math.floor(Math.random() * 26));
27
28 const checkDigit = Math.floor(Math.random() * 10).toString();
29
30 return `${paternal}${maternal}${given}${dateStr}${gender}${state}${internalConsonants}${diffDigit}${checkDigit}`;
31}
32
33// Generiere und protokolliere eine zufällige CURP
34console.log(generateCURP());
35
Alternativen in anderen Ländern
Während die CURP einzigartig für Mexiko ist, haben andere Länder ähnliche Identifikationssysteme:
- Vereinigte Staaten: Sozialversicherungsnummer (SSN)
- Kanada: Sozialversicherungsnummer (SIN)
- Indien: Aadhaar-Nummer
- Brasilien: Cadastro de Pessoas Físicas (CPF)
Jedes System hat seine eigene Struktur und Regeln, erfüllt jedoch ähnliche Zwecke in ihren jeweiligen Ländern.
Referenzen
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Abgerufen am 4. Aug. 2024.
- 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. Abgerufen am 4. Aug. 2024.
Rückmeldung
Klicken Sie auf das Feedback-Toast, um mit der Bewertung dieses Tools zu beginnen
Verwandte Tools
Entdecken Sie weitere Tools, die für Ihren Workflow nützlich sein könnten