Losowy generator CURP do celów testowych i walidacji

Generuj ważne, losowe CURP (Clave Única de Registro de Población) do celów testowych. To narzędzie tworzy CURP, które spełniają oficjalny meksykański format i zasady walidacji, bez użycia prawdziwych informacji osobowych.

Generuj CURP

📚

Dokumentacja

Generator CURP

Wprowadzenie

CURP (Clave Única de Registro de Población) to unikalny alfanumeryczny kod używany w Meksyku do celów identyfikacyjnych. To narzędzie generuje ważne, losowe CURP do scenariuszy testowych, zgodnie z oficjalnym formatem i zasadami walidacji. Ważne jest, aby zauważyć, że te wygenerowane CURP nie są powiązane z rzeczywistymi osobami i powinny być używane tylko do celów testowych.

Struktura CURP

CURP składa się z 18 znaków w następującym formacie:

  1. Pierwsza litera nazwiska ojca
  2. Pierwsza samogłoska nazwiska ojca (z wyłączeniem pierwszej litery)
  3. Pierwsza litera nazwiska matki
  4. Pierwsza litera imienia 5-10. Data urodzenia (format YYMMDD)
  5. Płeć (H dla mężczyzn, M dla kobiet) 12-13. Dwuliterowy kod stanu urodzenia 14-16. Pierwsza wewnętrzna spółgłoska każdego składnika imienia (nazwisko ojca, nazwisko matki, imię)
  6. Cyfra różnicująca (0-9 dla osób urodzonych przed 2000 rokiem, A-Z dla tych urodzonych od 2000 roku)
  7. Cyfra kontrolna (0-9)

Algorytm generowania losowego CURP

  1. Generowanie losowych liter dla składników imienia
  2. Generowanie losowej daty urodzenia
  3. Losowy wybór płci
  4. Losowy wybór ważnego kodu stanu
  5. Generowanie losowych spółgłosk dla wewnętrznych składników imienia
  6. Określenie cyfry różnicującej na podstawie roku urodzenia
  7. Obliczenie cyfry kontrolnej
  8. Połączenie wszystkich składników w celu utworzenia CURP

Zasady walidacji

  • Wszystkie znaki alfabetyczne muszą być wielkimi literami
  • Data urodzenia musi być ważną datą (w tym uwzględnienie lat przestępnych)
  • Kod stanu musi być ważnym kodem stanu w Meksyku
  • Cyfra różnicująca musi odpowiadać rokowi urodzenia
  • Cyfra kontrolna musi być poprawnie obliczona
  • Obsługa przypadków szczególnych dla imion (np. nazwiska jedno-literowe, imiona z Ñ)

Przykłady użycia

  1. Testowanie oprogramowania: Programiści mogą używać tego narzędzia do generowania ważnych CURP do testowania systemów rejestracji użytkowników, operacji w bazach danych lub jakiegokolwiek oprogramowania, które wymaga wprowadzenia CURP.

  2. Prywatność danych: Podczas demonstrowania oprogramowania lub prezentowania danych, używanie losowo generowanych CURP pomaga chronić prywatność osób.

  3. Testowanie wydajności: Generowanie dużych zestawów unikalnych CURP w celu testowania wydajności systemu pod obciążeniem.

  4. Szkolenie i edukacja: Używanie generowanych CURP w materiałach edukacyjnych dotyczących systemów identyfikacji w Meksyku bez używania rzeczywistych danych osobowych.

Historia CURP w Meksyku

System CURP został wprowadzony w 1996 roku przez rząd Meksyku w ramach wysiłków na rzecz modernizacji i standaryzacji identyfikacji osobistej. Zastąpił różne inne systemy identyfikacji i stał się kluczowym elementem meksykańskiej biurokracji, używanym do wszystkiego, od rejestracji w szkołach po składanie zeznań podatkowych.

Na przestrzeni lat system CURP przeszedł kilka modyfikacji:

  • W 2011 roku wprowadzono cyfrę różnicującą, aby odróżnić osoby urodzone przed i po 2000 roku.
  • W 2012 roku zmodyfikowano algorytm obliczania cyfry kontrolnej, aby poprawić unikalność.

Przykłady

Oto przykłady kodu do generowania losowych CURP w różnych językach programowania:

1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6    # Generowanie składników imienia
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    # Generowanie daty urodzenia
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    # Generowanie płci
18    gender = random.choice(['H', 'M'])
19
20    # Generowanie kodu stanu
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    # Generowanie spółgłosk
25    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27    # Generowanie cyfry różnicującej
28    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30    # Generowanie cyfry kontrolnej (uproszczone dla tego przykładu)
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## Generowanie i drukowanie losowego CURP
36print(generate_curp())
37

Alternatywy w innych krajach

Chociaż CURP jest unikalne dla Meksyku, inne kraje mają podobne systemy identyfikacyjne:

  1. Stany Zjednoczone: Numer ubezpieczenia społecznego (SSN)
  2. Kanada: Numer ubezpieczenia społecznego (SIN)
  3. Indie: Numer Aadhaar
  4. Brazylia: Cadastro de Pessoas Físicas (CPF)

Każdy system ma swoją własną strukturę i zasady, ale pełni podobne funkcje w swoich krajach.

Źródła

  1. SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Dostęp 4 sierpnia 2024.
  2. 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. Dostęp 4 sierpnia 2024.