Генератор на 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. Човек на име Инес Буено Естрада иначе би започнал с 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.