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:
import random
import string
from datetime import datetime, timedelta
def generate_curp():
# Generiere Namensbestandteile
paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
maternal = random.choice(string.ascii_uppercase)
given = random.choice(string.ascii_uppercase)
# Generiere Geburtsdatum
start_date = datetime(1940, 1, 1)
end_date = datetime.now()
random_date = start_date + timedelta(days=random.randint(0, (end_date - start_date).days))
date_str = random_date.strftime("%y%m%d")
# Generiere Geschlecht
gender = random.choice(['H', 'M'])
# Generiere Staatscode
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']
state = random.choice(states)
# Generiere Konsonanten
consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
# Generiere Differenzierungsziffer
diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
# Generiere Prüfziffer (vereinfacht für dieses Beispiel)
check_digit = random.choice(string.digits)
return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
## Generiere und drucke eine zufällige CURP
print(generate_curp())
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.