CURP Generátor
Bevezetés
A CURP (Clave Única de Registro de Población) egy egyedi alfanumerikus kód, amelyet Mexikóban használnak az azonosítási célokra. Ez az eszköz érvényes, véletlenszerű CURP-kat generál tesztelési forgatókönyvekhez, megfelelve a hivatalos formátumnak és érvényességi szabályoknak. Fontos megjegyezni, hogy ezek a generált CURP-k nem kapcsolódnak valós személyekhez, és csak tesztelési célokra használhatók.
CURP Felépítése
A CURP 18 karakterből áll, a következő formátumban:
- Az apai vezetéknév első betűje
- Az apai vezetéknév első magánhangzója (az első betűt kizárva)
- Az anyai vezetéknév első betűje
- A keresztnevének első betűje 5-10. Születési dátum (YYMMDD formátumban)
- Nem (H férfi, M nő) 12-13. Kétbetűs kód a születési államhoz 14-16. Az egyes névkomponensek (apai vezetéknév, anyai vezetéknév, kereszt név) első belső mássalhangzói
- Megkülönböztető számjegy (0-9 a 2000 előtt született embereknek, A-Z a 2000 után születetteknek)
- Ellenőrző számjegy (0-9)
Véletlenszerű CURP Generálásának Algoritmus
- Véletlenszerű betűk generálása a névkomponensekhez
- Véletlenszerű születési dátum generálása
- Véletlenszerű nem kiválasztása
- Véletlenszerű érvényes államkód kiválasztása
- Véletlenszerű mássalhangzók generálása a belső névkomponensekhez
- A megkülönböztető számjegy meghatározása a születési év alapján
- Az ellenőrző számjegy kiszámítása
- Az összes komponens kombinálása a CURP létrehozásához
Érvényességi Szabályok
- Minden betűs karakternek nagybetűsnek kell lennie
- A születési dátumnak érvényes dátumnak kell lennie (beleértve a szökőévek figyelembevételét)
- Az államkódnak érvényes mexikói államkódnak kell lennie
- A megkülönböztető számjegynek meg kell felelnie a születési évnek
- Az ellenőrző számjegynek helyesen kell kiszámítva lennie
- Kezelni kell a nevekkel kapcsolatos különleges eseteket (pl. egybetűs vezetéknév, Ñ-t tartalmazó nevek)
Használati Esetek
-
Szoftver Tesztelés: A fejlesztők használhatják ezt az eszközt érvényes CURP-k generálására a felhasználói regisztrációs rendszerek, adatbázis műveletek vagy bármely olyan szoftver tesztelésére, amely CURP bemenetet igényel.
-
Adatvédelmi Szempontok: A szoftver bemutatása vagy adatainak prezentálása során a véletlenszerűen generált CURP-k használata segít megvédeni az egyének magánéletét.
-
Teljesítmény Tesztelés: Nagy mennyiségű egyedi CURP generálása a rendszer teljesítményének terhelés alatt történő tesztelésére.
-
Képzés és Oktatás: Generált CURP-k használata oktatási anyagokban a mexikói azonosító rendszerekről, valós személyes adatok használata nélkül.
A CURP Története Mexikóban
A CURP rendszert 1996-ban vezette be a mexikói kormány, mint a személyazonosítás modernizálására és egységesítésére irányuló erőfeszítések részeként. Különböző más azonosító rendszereket váltott fel, és kulcsfontosságú elemmé vált a mexikói bürokráciában, amelyet az iskolai beiratkozástól a adóbevallásig használnak.
Az évek során a CURP rendszer több módosításon ment keresztül:
- 2011-ben bevezették a megkülönböztető számjegyet, hogy megkülönböztessék a 2000 előtt és után született embereket.
- 2012-ben módosították az ellenőrző számjegy kiszámításának algoritmusát az egyediség javítása érdekében.
Példák
Itt vannak kód példák a véletlenszerű CURP-k generálására különböző programozási nyelveken:
import random
import string
from datetime import datetime, timedelta
def generate_curp():
# Névkomponensek generálása
paternal = random.choice(string.ascii_uppercase) + random.choice('AEIOU')
maternal = random.choice(string.ascii_uppercase)
given = random.choice(string.ascii_uppercase)
# Születési dátum generálása
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")
# Nem generálása
gender = random.choice(['H', 'M'])
# Államkód generálása
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)
# Mástalan hangzók generálása
consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
# Megkülönböztető számjegy generálása
diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
# Ellenőrző számjegy generálása (egyszerűsítve ebben a példában)
check_digit = random.choice(string.digits)
return f"{paternal}{maternal}{given}{date_str}{gender}{state}{consonants}{diff_digit}{check_digit}"
## Véletlenszerű CURP generálása és kiírása
print(generate_curp())
Alternatívák Más Országokban
Bár a CURP egyedi Mexikóra, más országok hasonló azonosító rendszerekkel rendelkeznek:
- Egyesült Államok: Társadalombiztosítási szám (SSN)
- Kanada: Szociális Biztosítási Szám (SIN)
- India: Aadhaar Szám
- Brazília: Cadastro de Pessoas Físicas (CPF)
Minden rendszernek megvan a saját struktúrája és szabályai, de hasonló célokat szolgálnak a saját országukban.
Hivatkozások
- SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Hozzáférés: 2024. augusztus 4.
- 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. Hozzáférés: 2024. augusztus 4.