跳至内容

CURP生成器 - 开发测试墨西哥身份识别码

CURP生成器根据墨西哥官方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 个字符按以下方法计算:

  1. 列出前 17 个字符在字母表 0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ 中的位置。该位置从 0 开始计数,就是字符的值。因此,0 的值为 0,A 的值为 10,R 的值为 28,Z 的值为 36。
  2. 将每个字符的值乘以一个权重。第一个字符的权重从 18 开始,之后每个字符递减 1,到第 17 个字符时为 2。
  3. 将 17 个乘积相加,得到总和 S。
  4. 校验位为 (10 − (S mod 10)) mod 10。

计算示例

设有一名虚构人物 Juan Pérez Ramírez,出生于 1985年3月15日,性别为男性,出生地为哈利斯科州。

  • 位置 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 日只会出现在闰年。性别和州代码也会随机选择。随后,工具添加三个内部辅音,在需要时执行粗俗词替换;出生年份为 2000 年或之后时,为位置 17 选择一个字母,早于该年份时选择一个数字;最后使用上述公式计算校验位。

显示代码前,工具会再次检查:其格式必须符合 18 个字符的模式,月份必须为 01-12,编码的日期必须是日历中实际存在且已过去的日期,校验位也必须匹配。日期检查所用的世纪由位置 17 决定,规则与 RENAPO 相同:数字表示 1900 年代,字母表示 2000 年代。未通过任何一项检查的代码都不会显示。

生成的 CURP 的常见用途

软件团队使用生成的 CURP 测试注册表单、数据库字段和验证逻辑,然后再为墨西哥用户发布产品。由于这些代码是随机的,因此可以批量创建,用于负载测试或填充开发数据库,而不必使用或存储任何人的真实身份信息。

CURP 系统的历史

墨西哥于 1996 年引入 CURP,以取代不同政府机构分别使用的零散身份识别系统;这些系统使跨数据库匹配同一人的记录变得困难。此后,CURP 成为办理许多政府事务的必要条件,包括入学、报税和申请护照。对于 2000 年及以后出生的人,RENAPO 会在位置 17 使用字母而非数字。

CURP 与其他国家身份识别系统的比较

国家系统格式
墨西哥CURP18 个字符,包括字母和数字
美国社会保障号码9 位数字
加拿大社会保险号码9 位数字
巴西CPF11 位数字
印度Aadhaar12 位数字
西班牙DNI/NIE8 位数字加一个校验字母

与纯粹的顺序编号不同,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。请参见上面的计算示例。

参考文献

  1. SEGOB(Secretaría de Gobernación,内政部),CURP 官方门户。
  2. RENAPO(Registro Nacional de Población e Identidad,国家人口与身份登记机构),CURP 分配规范说明。