DNI/NIE校验字母如何计算
校验字母使用固定算法验证西班牙DNI或NIE号码:将8位数字除以23,用余数从字符串'TRWAGMYFPDXBNJZSQVHLCKE'(从0开始索引)中选出对应字母。对于NIE,需先把开头字母替换为数字——X变为0,Y变为1,Z变为2——再进行同样的计算。这样既能为新号码生成正确字母,也能确认现有DNI/NIE是否输入有误。
输入DNI(8位数字)或NIE(X/Y/Z+7位数字),无论是否带字母,均可计算或验证。
校验字母使用固定算法验证西班牙DNI或NIE号码:将8位数字除以23,用余数从字符串'TRWAGMYFPDXBNJZSQVHLCKE'(从0开始索引)中选出对应字母。对于NIE,需先把开头字母替换为数字——X变为0,Y变为1,Z变为2——再进行同样的计算。这样既能为新号码生成正确字母,也能确认现有DNI/NIE是否输入有误。
要计算校验字母,取8位数字(对于NIE,先将开头字母替换为数字:X=0,Y=1,Z=2),除以23,将余数作为固定字符串'TRWAGMYFPDXBNJZSQVHLCKE'的索引。例如:12345678除以23的余数是15,索引15处的字母是'Z'。
Z。12345678除以23的余数是14,固定的23字母表'TRWAGMYFPDXBNJZSQVHLCKE'中第14位(从0开始数)的字母是Z。
不是,它是一个固定的非字母顺序序列'TRWAGMYFPDXBNJZSQVHLCKE'。DNI号码除以23的余数决定选取哪个位置的字母,并不是直接从字母表计算出来的。
L。前缀X被替换为0,得到数字1234567;1234567除以23的余数是19,对应L。
X。前缀Y被替换为1,得到11234567;11234567除以23的余数是10,对应X。
R。前缀Z被替换为2,得到21234567;21234567除以23的余数是1,对应R。
T。0除以23的余数是0,表中第一个(第0位)字母就是T。
不会。计算始终使用完整的8位数字本身,前导零也是数字的一部分,在计算除以23的余数之前不会被去掉。
会。因为可用字母只有23个,而8位数字数量远多于此,所以平均每23个号码中就有1个共享同一字母,单凭字母无法确定具体是哪个DNI。
| 号码 | mod 23 | 字母 |
|---|---|---|
| 12345678 | 15 | Z |
| 00000000 | 0 | T |
| 87654321 | 21 | X |
| 25000000 | 13 | N |
| 99999999 | 1 | R |
DNI(国民身份证)发给西班牙公民,始终由8位数字加一个校验字母组成。NIE(外国人身份号码)发给外国居民,以X、Y或Z开头,后接7位数字和一个校验字母。
校验字母算法最初是为8位数字设计的。由于NIE在开头字母之后只有7位数字,需要先把开头字母映射成数字(X=0、Y=1、Z=2),凑成完整的8位数字,再套用和DNI相同的mod-23公式。
它能确认校验字母是否与前面8位数字在数学上一致,从而发现打错或随意编造的号码。但它无法确认这个号码是否真的由西班牙官方机构签发——那需要通过官方登记系统查询才能确认。
参照字符串“TRWAGMYFPDXBNJZSQVHLCKE”特意排除了元音字母以及外形容易混淆的字母和数字,目的是减少口头读出或手写抄录身份证号码时出错的概率。
此工具仅实现公开的校验字母算法,不验证DNI/NIE是否实际签发、当前是否有效,或是否属于真实存在的人。身份核实请使用官方政府服务。
最后更新: 2026-08-24