Генератор 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 завжди містить 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 для першого символу й зменшується на одиницю для кожного наступного, досягаючи 2 для символу 17.
- Додайте 17 добутків, щоб отримати суму S.
- Контрольна цифра дорівнює
(10 − (S mod 10)) mod 10.
Приклад обчислення
Розглянемо вигадану особу — Хуана Переса Раміреса, народженого чоловіком 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.