Генератор CURP - Тестирование мексиканских идентификационных кодов для разработки
Генерируйте действительные тестовые CURP для разработки мексиканских приложений. Бесплатный инструмент создает случайные 18-значные идентификационные коды в соответствии с официальным форматом RENAPO. Идеально подходит для тестирования, заполнения базы данных и проверки API.
Создайте случайный, синтаксически правильный образец CURP с правильной контрольной цифрой.
Документация
Что такое генератор CURP?
Генератор CURP создаёт случайный образец CURP — кода из 18 символов, который Мексика использует для идентификации жителей и граждан. Результат имеет правильную структуру и правильно рассчитанную контрольную цифру, но не связан с реальным человеком. Разработчики используют такие инструменты для тестирования программного обеспечения, не раскрывая чьи-либо настоящие персональные данные.
Что такое CURP?
CURP расшифровывается как Clave Única de Registro de Población, или уникальный код регистрации населения. Его выдаёт RENAPO (Registro Nacional de Población e Identidad), национальный реестр населения Мексики. CURP есть почти у каждого жителя Мексики. Этот код указывается в документах для зачисления в учебные заведения, налоговых записях, медицинских документах и при регистрации избирателей. Он составляется из частей имени человека, даты рождения, пола и штата рождения, а также двух дополнительных символов, которые помогают различать людей с одинаковым кодом.
Структура и формат CURP
CURP всегда содержит 18 символов — только прописные буквы или цифры. Каждая позиция имеет фиксированное значение.
| Позиция | Значение |
|---|---|
| 1 | Первая буква фамилии отца |
| 2 | Первая внутренняя гласная фамилии отца (первая гласная после первой буквы) |
| 3 | Первая буква фамилии матери |
| 4 | Первая буква имени |
| 5–6 | Последние две цифры года рождения |
| 7–8 | Месяц рождения (01–12) |
| 9–10 | День рождения (01–31) |
| 11 | Пол: H для Hombre (мужской), M для Mujer (женский) |
| 12–13 | Двухбуквенный код штата рождения, например DF для Мехико или JC для Халиско |
| 14 | Первая внутренняя согласная фамилии отца |
| 15 | Первая внутренняя согласная фамилии матери |
| 16 | Первая внутренняя согласная имени |
| 17 | Цифра для лиц, родившихся до 2000 года, или буква для лиц, родившихся в 2000 году или позже |
| 18 | Контрольная цифра, рассчитанная по первым 17 символам |
В этой системе Мексика использует 32 кода штатов: по одному для каждого из 31 штатов и отдельный код для Мехико.
Если первые четыре символа случайно образуют слово, считающееся грубым в испанском языке, RENAPO заменяет второй символ на X. Например, у человека по имени Ines Bueno Estrada код начинался бы с BUEI, поэтому вместо этого он начинается с BXEI. Этот генератор блокирует те же 82 слова и применяет такую же замену.
Как рассчитать контрольную цифру CURP
18-й символ выявляет ошибки при наборе и копировании. Он рассчитывается по первым 17 символам следующим образом:
- Для каждого из первых 17 символов найдите его в алфавите
0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ. Его позиция в этом списке, начиная с 0, является его значением. Поэтому0имеет значение 0,A— 10,R— 28, аZ— 36. - Умножьте значение каждого символа на вес. Для первого символа вес равен 18, затем для каждого следующего символа он уменьшается на единицу и для 17-го символа становится равен 2.
- Сложите 17 произведений и получите сумму S.
- Контрольная цифра равна
(10 − (S mod 10)) mod 10.
Пример расчёта
Рассмотрим вымышленного человека: Juan Pérez Ramírez, родившегося 15 марта 1985 г. в штате Халиско; при рождении ему был присвоен мужской пол.
- Позиция 1:
P, первая буква фамилии «Pérez» - Позиция 2:
E, первая внутренняя гласная фамилии «Pérez» (после первой буквы идут E, R, E, Z, поэтому первой гласной является E) - Позиция 3:
R, первая буква фамилии «Ramírez» - Позиция 4:
J, первая буква имени «Juan» - Позиции 5–10:
850315для даты 1985-03-15 - Позиция 11:
H, мужской пол - Позиции 12–13:
JC, Халиско - Позиция 14:
R, первая внутренняя согласная фамилии «Pérez» - Позиция 15:
M, первая внутренняя согласная фамилии «Ramírez» - Позиция 16:
N, первая внутренняя согласная имени «Juan» - Позиция 17:
0, цифра, поскольку год рождения предшествует 2000 году (в реальных записях используется фиксированное правило выбора цифры; в этом примере используется 0)
Первые 17 символов имеют вид PERJ850315HJCRMN0. Применение приведённой выше формулы к этой строке даёт сумму 2342. Поскольку 2342 mod 10 = 2, контрольная цифра равна (10 − 2) mod 10 = 8. Полный CURP: PERJ850315HJCRMN08.
Как работает этот генератор
Инструмент создаёт образец CURP в несколько этапов. Сначала он выбирает случайные буквы для части имени, затем год рождения от 1940 до года, предшествующего текущему, чтобы дата всегда была в прошлом. День выбирается в пределах фактического числа дней выбранного месяца, поэтому 29 февраля появляется только в високосные годы. Пол и код штата выбираются случайно. Затем инструмент добавляет три внутренние согласные, при необходимости применяет замену грубого слова, выбирает букву для позиции 17, если год рождения — 2000 или позже, и цифру, если он более ранний, а затем рассчитывает контрольную цифру по приведённой выше формуле.
Перед отображением кода инструмент проверяет его ещё раз: структура должна соответствовать шаблону из 18 символов, месяц должен иметь значение 01-12, закодированная дата должна существовать в календаре и быть в прошлом, а контрольная цифра — совпадать. Век для проверки даты определяется по позиции 17 согласно тому же правилу, которое использует RENAPO: цифра означает 1900-е годы, а буква — 2000-е. Код, не прошедший любую из этих проверок, не отображается.
Распространённые способы использования сгенерированных CURP
Команды разработчиков используют сгенерированные CURP для тестирования регистрационных форм, полей базы данных и логики проверки перед выпуском продукта для мексиканских пользователей. Поскольку коды случайны, их можно массово создавать для нагрузочного тестирования или заполнения базы данных разработки, не используя и не сохраняя реальные идентификационные данные людей.
История системы CURP
Мексика ввела CURP в 1996 году, чтобы заменить разрозненные системы идентификации, которые разные государственные учреждения использовали независимо друг от друга, из-за чего было трудно сопоставлять записи об одном человеке в разных базах данных. С тех пор CURP стал необходимым для многих взаимодействий с государственными органами, включая зачисление в учебные заведения, подачу налоговой декларации и оформление паспорта. Для людей, родившихся начиная с 2000 года, RENAPO указывает в позиции 17 букву вместо цифры.
Сравнение CURP с другими национальными системами идентификации
| Страна | Система | Формат |
|---|---|---|
| Мексика | CURP | 18 символов, букв и цифр |
| Соединённые Штаты | Номер социального страхования | 9 цифр |
| Канада | Номер социального страхования | 9 цифр |
| Бразилия | CPF | 11 цифр |
| Индия | Aadhaar | 12 цифр |
| Испания | DNI/NIE | 8 цифр и контрольная буква |
В отличие от простого последовательного номера, CURP содержит читаемую информацию: дату рождения, пол и штат. Благодаря этому можно проверить, является ли закодированная дата реальной календарной датой; такую проверку инструмент выполняет при создании образца кода.
Часто задаваемые вопросы
Для чего используется генератор CURP?
Он создаёт случайный код в том же формате, что и настоящий CURP, для тестирования программного обеспечения, заполнения базы данных и проверки правильности работы логики валидации.
Связаны ли сгенерированные CURP с реальными людьми?
Нет. Каждый символ выбирается случайно или рассчитывается на основе других случайных значений. Результат не связан ни с одним реальным человеком, живым или умершим.
Можно ли использовать сгенерированный CURP в официальной форме?
Нет. Только RENAPO может выдать действительный CURP реальному человеку. Использование сгенерированного кода в государственной форме, налоговой декларации или любом официальном документе было бы мошенничеством.
Почему некоторые CURP заканчиваются буквой, а другие — цифрой в позиции 17?
Позиция 17 позволяет различать людей, у которых иначе были бы одинаковые CURP. RENAPO использует цифру для людей, родившихся до 2000 года, и букву для родившихся в 2000 году или позже.
Почему в CURP иногда стоит X в качестве второго символа?
Потому что первые четыре символа иначе образовали бы слово, считающееся грубым в испанском языке. В таком случае RENAPO заменяет второй символ на X, поэтому BUEI превращается в BXEI.
Сохраняет ли этот инструмент создаваемые CURP?
Нет. Код создаётся в браузере с помощью JavaScript. Ничего не отправляется на сервер и не сохраняется.
Как рассчитывается контрольная цифра?
Каждый из первых 17 символов преобразуется в число на основе его позиции в фиксированном алфавите из 37 символов, умножается на вес от 18 до 2, а полученные произведения складываются. Контрольная цифра равна (10 − (sum mod 10)) mod 10. См. приведённый выше пример.
Источники
- SEGOB (Secretaría de Gobernación), официальный портал CURP.
- RENAPO (Registro Nacional de Población e Identidad), Нормативная инструкция по присвоению CURP.