国民身份证不是一本缩小的护照。它有自己的机读区(MRZ),位于背面而不是照片面,由 3 行、每行 30 个字符组成,而不是 2 行、每行 44 个字符。ICAO 把这种版式称为 TD1,而在欧盟,它已经不再是可选项:成员国向本国公民签发的每一张身份证都必须带有机读区,没有可用机读区的卡片会在固定日期前失效。
本文把两份一手资料放在一起对照。第一份是 ICAO Doc 9303 第 5 部分,它规定了 TD1 的每个字符放在哪里。第二份是欧盟法律:Reg. (EU) 2019/1157 和理事会 Reg. (EU) 2025/1208,它们规定成员国身份证必须带有 TD1 机读区。下面表格中的每一行都引自这些文本并附有链接,可以直接引用。凡是无法从这些文本中确认的国家,都没有列出。
这里是 doc.cheap 的博客。doc.cheap 是一款护照和身份证 OCR API,能读取护照和身份证,并在服务器端重新校验 MRZ 校验位。下文内容不依赖于它。
什么是 TD1 卡
ICAO Doc 9303 是机读旅行证件的国际标准。它分为多个部分,其中三个部分描述三种 MRZ 尺寸:第 4 部分涵盖护照及其他 TD3 尺寸证件,第 5 部分涵盖"TD1 尺寸机读官方旅行证件",第 6 部分涵盖 TD2 尺寸。
第 5 部分(第八版,2021 年)把卡片的物理尺寸定为 ISO/IEC 7810 的 ID-1 尺寸:85.60 × 53.98 mm,与银行卡一样大。它把机读区放在背面:"MRZ 位于 TD1 的背面。"实践中大多数身份证识别失败,都可以用这一句话解释。卡片正面的照片上有人脸、姓名和号码,却没有可供校验的机读区。
三种 MRZ 格式对比:
| 格式 | 行数 × 字符数 | 定义于 | 典型证件 |
|---|---|---|---|
| TD1 | 3 × 30 | Doc 9303 第 5 部分 | 国民身份证、居留许可 |
| TD2 | 2 × 36 | Doc 9303 第 6 部分 | 部分旧版卡片和旅行证件 |
| TD3 | 2 × 44 | Doc 9303 第 4 部分 | 护照本 |
MRZ 格式页面把三种版式并排展示。
逐字段解读 90 个字符
下面是 ICAO 自己给出的虚构 TD1 样本,签发方为"Utopia"(UTO,一个只存在于样本中的代码):
I<UTOD231458907<<<<<<<<<<<<<<<
7408122F1204159UTO<<<<<<<<<<<6
ERIKSSON<<ANNA<MARIA<<<<<<<<<<
第 5 部分 §4.2.2 规定了每一个位置。位置从 1 开始计数,与 ICAO 的计数方式一致。
| 行 | 位置 | 字段 | 样本中的值 |
|---|---|---|---|
| 1 | 1–2 | 证件代码;第一个字符为 A、C 或 I |
I< |
| 1 | 3–5 | 签发国或组织 | UTO |
| 1 | 6–14 | 证件号码 | D23145890 |
| 1 | 15 | 证件号码的校验位 | 7 |
| 1 | 16–30 | 签发方可选数据 | 填充符 |
| 2 | 1–6 | 出生日期,YYMMDD | 740812 |
| 2 | 7 | 出生日期的校验位 | 2 |
| 2 | 8 | 性别:F、M 或 < |
F |
| 2 | 9–14 | 有效期至,YYMMDD | 120415 |
| 2 | 15 | 有效期的校验位 | 9 |
| 2 | 16–18 | 国籍 | UTO |
| 2 | 19–29 | 签发方可选数据 | 填充符 |
| 2 | 30 | 覆盖第 1 行和第 2 行的综合校验位 | 6 |
| 3 | 1–30 | 姓名:主标识符、<<、次标识符 |
ERIKSSON<<ANNA<MARIA |
这里有三处与护照不同,常常让为 TD3 编写的解析器出错:
- 姓名在最后,而不是最前。 护照上的姓名在第 1 行。TD1 卡上的姓名占满整个第 3 行,过长的姓名会被截断到 30 个字符。
- 国籍和签发国在不同的行。 第 1 行是签发方,第 2 行是持证人的国籍。大多数卡片上两者是同一个代码,但解析器不应默认如此。
- 综合校验位跨越两行。 它同时覆盖第 1 行和第 2 行的数据,因此逐行校验的验证器无法算出它。
所有校验位都使用与护照相同的 7-3-1 权重;MRZ 解析器会把每个计算出的校验位显示在印刷值旁边。
欧盟法律的要求
欧盟关于身份证的规则最早由 Reg. (EU) 2019/1157 确立,自 2021 年 8 月 2 日起适用。同样的规则、同样的日期,由 2025 年 6 月 12 日的理事会 Reg. (EU) 2025/1208 延续,该文本于 2025 年 6 月 20 日在《官方公报》上发布。下表引用的是 2025 年的文本。
| 规则 | 文本内容 | 出处 |
|---|---|---|
| 格式 | 身份证"应以 ID-1 格式制作,并应包含机读区(MRZ)",遵循 ICAO 文件 9303 | 第 3 条第 1 款 |
| 数据 | 卡片的数据元素遵循 ICAO 文件 9303 第 5 部分 | 第 3 条第 2 款 |
| 芯片 | 存储一张面部图像和两枚指纹的存储介质 | 第 3 条第 5 款 |
| 旧卡(一般情况) | 不符合第 3 条的卡片"应在到期时或 2031 年 8 月 3 日失效,以较早者为准" | 第 5 条第 1 款 |
| 没有可用 MRZ 的旧卡 | 不具备 ICAO 第 2 部分最低安全标准、或没有"可用的 MRZ"的卡片,"在到期时或 2026 年 8 月 3 日失效,以较早者为准" | 第 5 条第 2 款 (a) 项 |
| 70 岁及以上的持证人 | 在 2021 年 8 月 2 日已年满 70 岁者的卡片,若具备第 2 部分最低安全标准和可用的 MRZ,则在到期前持续有效 | 第 5 条第 2 款 (b) 项 |
对搭建身份证流程的人来说,实际含义是:自 2026 年 8 月 3 日起,成员国向本国国民签发、且按此规则仍然有效的身份证,都带有 TD1 机读区。在此之前,没有可用机读区的旧卡仍可能有效,这就是为什么强制要求 MRZ 的校验可能会拒绝一张合法的卡片。以上是对文本的概括,不构成法律意见。
该规则覆盖哪些国家
2025 年的文本自己划定了边界。以下是文本本身能够支持的几行:
| 类别 | 在理事会 Reg. (EU) 2025/1208 下的地位 | 文本出处 |
|---|---|---|
| 签发身份证的成员国 | 受约束:卡片遵循第 3 条,旧卡按第 5 条逐步淘汰 | 第 3 条和第 5 条 |
| 没有国民身份证的成员国 | 无需引入:该文本"不要求成员国在其国内法未作规定的情况下……引入身份证" | 序言第 (9) 段 |
| 丹麦 | "未参与通过",且"不受其约束,也不适用" | 序言第 (47) 段 |
| 爱尔兰 | "以 2024 年 10 月 18 日的信函"通知"其希望参与" | 序言第 (48) 段 |
| 爱尔兰护照卡 | 不在适用范围内:第 5 部分旅行证件中"在签发成员国不用于身份识别目的的证件,例如爱尔兰签发的护照卡" | 序言第 (12) 段 |
由此可以得出两点。一张带有 MRZ 的 TD1 卡并不能证明该证件就是国民身份证:爱尔兰护照卡同样是第 5 部分证件,而法律对它另行处理。另外,某个国家没有国民身份证并不是法律的漏洞,因为法律从未要求必须有。
对于某个具体国家的卡片,参考依据就是样本本身。理事会总秘书处公开发布真实证件的图像,Reg. (EU) 2020/493 称之为"真实旅行和身份证件在线公共登记册,即 PRADO",地址为 consilium.europa.eu/prado。每个条目都展示卡片的正反两面,可以看到该签发方把机读区放在哪里,以及可选数据字段里写了什么。
这对身份证上传流程意味着什么
- 要求上传背面。 机读区按定义就在背面,只要求正面的流程拿不到可校验的 MRZ。
- 预期三行,并按形状解析。 3 行 30 个字符是 TD1;2 行 36 个字符是 TD2;2 行 44 个字符是 TD3。先识别格式,再读取字段。
- 不要把证件代码写死。 第 5 部分允许第一个字符为
A、C或I,只检查I会拒绝有效的卡片。 - 把可选数据字段视为由签发方定义。 第 5 部分把其内容交给签发国决定,因此应按签发方分别解析,而不是当作一个固定字段。
- MRZ 校验通过代表一致性,而不是真实性。 校验位证明的是机读区被正确读取,而不是卡片是真的。
doc.cheap 如何处理 TD1 卡
API 每次调用接收一张图片,所以卡片的两面就是共享同一个 reference 的两次调用。识别身份证指南(英文)介绍了这一流程:背面通常返回 mrz.status: passed,没有机读区的正面返回 mrz.status: absent,而不是错误。读取到机读区时,mrz.lines 会按印刷原样保存各行(TD1 卡为三行,TD3 护照为两行),方便你自己重新计算校验位;服务器按第 5 部分 §4.2.4 规定的位置校验 TD1 校验位。document.country 字段携带三字母的签发方代码。
对于同一批国家的护照,按国家划分的护照 OCR 介绍了 TD3 这一侧。如果你在比较托管 API,护照 OCR API 对比列出了各服务公开的价格,以及识别失败的扫描是否计费。doc.cheap 每月包含 100 次免费识别。
上文所有法律表述均引自所链接的 EUR-Lex 文本和 ICAO Doc 9303 第 5 部分;所有关于 doc.cheap 的表述均已对照其代码核实。
想问问你: 你的身份证流程会要求上传卡片背面吗?遇到只上传了正面的情况,你是怎么处理的?欢迎在下方评论区告诉我们。