Случаен генератор на CURP за тестови цели и валидация

Генерирайте валидни, случайни CURP (Clave Única de Registro de Población) за тестови цели. Този инструмент създава CURP, които отговарят на официалния мексикански формат и правила за валидация, без да използва реална лична информация.

Генерирай CURP

📚

Документация

Генератор на CURP

Въведение

CURP (Clave Única de Registro de Población) е уникален алфанумеричен код, използван в Мексико за идентификационни цели. Този инструмент генерира валидни, случайни CURP за тестови сценарии, съобразявайки се с официалния формат и правила за валидация. Важно е да се отбележи, че тези генерирани CURP не са свързани с реални лица и трябва да се използват само за тестови цели.

Структура на CURP

CURP се състои от 18 символа в следния формат:

  1. Първа буква от фамилията на бащата
  2. Първа гласна от фамилията на бащата (с изключение на първата буква)
  3. Първа буква от фамилията на майката
  4. Първа буква от името 5-10. Дата на раждане (формат YYMMDD)
  5. Пол (H за мъж, M за жена) 12-13. Двубуквен код за щата на раждане 14-16. Първа вътрешна съгласна от всеки компонент на името (фамилия на бащата, фамилия на майката, име)
  6. Диференцираща цифра (0-9 за хора, родени преди 2000 г., A-Z за тези, родени след 2000 г.)
  7. Контролна цифра (0-9)

Алгоритъм за генериране на случайна CURP

  1. Генерирайте случайни букви за компонентите на имената
  2. Генерирайте случайна дата на раждане
  3. Случайно изберете пол
  4. Случайно изберете валиден код на щата
  5. Генерирайте случайни съгласни за вътрешните компоненти на имената
  6. Определете диференциращата цифра на базата на годината на раждане
  7. Изчислете контролната цифра
  8. Комбинирайте всички компоненти, за да образувате CURP

Правила за валидация

  • Всички букви трябва да бъдат главни
  • Датата на раждане трябва да бъде валидна дата (включително съображения за високосни години)
  • Кодът на щата трябва да бъде валиден мексикански код на щата
  • Диференциращата цифра трябва да съответства на годината на раждане
  • Контролната цифра трябва да бъде правилно изчислена
  • Обработвайте специални случаи за имената (напр. фамилии с една буква, имена с Ñ)

Сценарии на употреба

  1. Тестване на софтуер: Разработчиците могат да използват този инструмент за генериране на валидни CURP за тестване на системи за регистрация на потребители, операции с бази данни или всякакъв софтуер, който изисква вход на CURP.

  2. Защита на данните: При демонстриране на софтуер или представяне на данни, използването на случайно генерирани CURP помага за защита на личната неприкосновеност.

  3. Тестване на производителността: Генерирайте големи набори от уникални CURP, за да тествате производителността на системата под натоварване.

  4. Обучение и образование: Използвайте генерирани CURP в образователни материали за мексиканските идентификационни системи, без да се използват реални лични данни.

История на CURP в Мексико

Системата CURP беше въведена през 1996 г. от мексиканското правителство в рамките на усилията за модернизиране и стандартизиране на личната идентификация. Тя замени различни други идентификационни системи и стана важен елемент в мексиканската бюрокрация, използвана за всичко - от записване в училище до подаване на данъци.

През годините системата CURP е претърпяла няколко модификации:

  • През 2011 г. беше въведена диференциращата цифра, за да се разграничат хората, родени преди и след 2000 г.
  • През 2012 г. алгоритъмът за изчисление на контролната цифра беше модифициран, за да се подобри уникалността.

Примери

Ето примери на код за генериране на случайни CURP на различни програмни езици:

1import random
2import string
3from datetime import datetime, timedelta
4
5def generate_curp():
6    # Генерирайте компоненти на имената
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    # Генерирайте дата на раждане
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    # Генерирайте пол
18    gender = random.choice(['H', 'M'])
19
20    # Генерирайте код на щата
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    # Генерирайте съгласни
25    consonants = ''.join(random.choices(string.ascii_uppercase.translate(str.maketrans('', '', 'AEIOU')), k=3))
26
27    # Генерирайте диференцираща цифра
28    diff_digit = random.choice(string.digits) if int(date_str[:2]) < 20 else random.choice(string.ascii_uppercase)
29
30    # Генерирайте контролна цифра (опростена за този пример)
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## Генерирайте и отпечатайте случайна CURP
36print(generate_curp())
37

Алтернативи в други държави

Докато CURP е уникален за Мексико, други държави имат подобни идентификационни системи:

  1. Съединени щати: Номер на социално осигуряване (SSN)
  2. Канада: Номер за социално осигуряване (SIN)
  3. Индия: Номер Aadhaar
  4. Бразилия: Cadastro de Pessoas Físicas (CPF)

Всяка система има своя собствена структура и правила, но служат за подобни цели в съответните си държави.

Източници

  1. SEGOB (Secretaría de Gobernación). "CURP - Trámites." Gobierno de México, https://www.gob.mx/curp/. Достъпно на 4 авг. 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. Достъпно на 4 авг. 2024.
🔗

Свързани инструменти

Открийте още инструменти, които могат да бъдат полезни за вашия работен процес