TD1、TD2 和 TD3:三种 MRZ 格式
TD1、TD2 和 TD3 是 ICAO Doc 9303 定义的三种机读区(MRZ)格式。TD3 为两行、每行 44 个字符,用于护照;TD2 为两行、每行 36 个字符,见于较早的身份证和旅行证件卡;TD1 为三行、每行 30 个字符,用于卡片尺寸的证件。
三种格式一览
| 格式 | 行数 × 每行字符数 | 证件类型 | 示例(第一行) |
|---|---|---|---|
| TD3 | 2 × 44 | 护照及其他 TD3 尺寸的旅行证件 | P<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<< |
| TD2 | 2 × 36 | TD2 尺寸的官方旅行证件;较早的身份证 | I<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<< |
| TD1 | 3 × 30 | 卡片尺寸的官方旅行证件和身份证 | IDGRCAK472913<4PN48291630<<<<< |
每一行都用填充符 < 补足到完整长度。每行不是恰好 44、36 或 30 个字符的机读区,就不是该格式的有效机读区;解析器拒绝某段机读区时,首先要检查的就是这一点。
TD3 – 两行,每行 44 个字符
护照所用的格式。第一行包含证件代码、签发国和姓名;第二行包含证件号码、国籍、出生日期、性别、有效期、个人号码以及各校验位。这里的姓名区有 39 个字符,是三种格式中最宽的。姓与名之间用两个填充符分隔;多个名之间用一个填充符分隔。
P<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<<<<<<<<<
AM73045184GRC9403084F3203101PN48291630<<<<72 综合校验位位于下面一行的第 44 位,覆盖该行的第 1–10、14–20 和 22–43 位。按照标准,第 11–13 位(国籍)和第 21 位(性别)不计入综合校验。
TD2 – 两行,每行 36 个字符
同样是两行的排布,但每行窄了八个字符。姓名字段有 31 个字符。
I<GRCPARADEIGMA<<ELENI<SOFIA<<<<<<<<
TR61850420GRC9403084F2911043<<<<<<<2 其综合校验位位于下面一行的第 36 位,覆盖第 1–10、14–20 和 22–35 位。
TD1 – 三行,每行 30 个字符
卡片所用的格式,也是解析器最常出错的格式,因为字段的分布方式不同:上面一行包含证件代码、签发国、证件号码和第一段可选数据;中间一行包含各日期、性别和国籍;姓名则独占整个下面一行,共 30 个字符。这是三种格式中最窄的姓名区,因此长姓名最有可能被截断的正是 TD1。
IDGRCAK472913<4PN48291630<<<<<
9403084F3405204GRC<<<<<<<<<<<9
PARADEIGMA<<ELENI<SOFIA<<<<<<< 其综合校验位是中间一行的最后一个字符,即第 30 位,覆盖上面一行的第 6–30 位以及中间一行的第 1–7、9–15 和 19–29 位。这个范围横跨两行,而实现时出错的恰恰就是这一部分。
您还会遇到的其他格式
除了这三种旅行证件格式之外:
- MRV-A – A 型机读签证:两行,每行 44 个字符。
- MRV-B – B 型机读签证:两行,每行 36 个字符。
- 驾驶证机读区上使用的单行 30 个字符的格式。
- 承载卡片访问码的六个字符的单行。
- 两行、每行 30 个字符的变体。
我们的 API 会报告它识别出的格式,您无需自己根据行长来推断。
校验位,以及它们覆盖不到的内容
每个校验位都在其字段上按循环权重 7, 3, 1 计算:数字取其本身的值,字母取其在字母表中的位置加 9(A = 10),填充符 < 记为 0。总和对 10 取模即为校验位。
校验位保护的字段有:证件号码、出生日期、有效期,以及在 TD3 中的个人号码;此外还有覆盖机读区大部分内容的综合校验位。
没有任何校验位覆盖姓名,也没有任何校验位覆盖签发国。这两处读错都不会被发现:算术依然成立。这是同时读取证件印刷面并比对两次读取结果的最有力理由,而我们的 API 默认就是这样做的。
MRZ 解析器页面上逐个字符演示了这一算术,随后还能在您自己的机读区上重新计算。
标准中的出处
ICAO Doc 9303,Machine Readable Travel Documents,第八版,2021 年。 该文档系列的首页已无法访问,因此以下各部分按编号和英文原标题引用,不附链接:
| 部分 | 标题 |
|---|---|
| 第 3 部分 | Specifications Common to all MRTDs |
| 第 4 部分 | Specifications for Machine Readable Passports (MRPs) and other TD3 Size MRTDs |
| 第 5 部分 | Specifications for TD1 Size Machine Readable Official Travel Documents (MROTDs) |
| 第 6 部分 | Specifications for TD2 Size Machine Readable Official Travel Documents (MROTDs) |
| 第 7 部分 | Machine Readable Visas |
第 3 部分规定所有格式的共同内容:字符集、填充符和校验位算法。第 4 部分定义 TD3,第 5 部分定义 TD1,第 6 部分定义 TD2,第 7 部分定义两种签证格式。各格式的校验位表见第 4.2.4 节,分别位于第 4、5、6 部分。
检查您自己的机读区
把一段机读区粘贴到免费的 MRZ 解析器中,每个校验位都会在您眼前、在您的浏览器中重新计算,不上传任何内容。要为测试数据生成有效的机读区,请使用 MRZ 生成器;要查看识别结果所用的完整字段词汇,请打开证件字段浏览器。这三个工具都不需要账户。
如果要读取整份证件而不只是机读区(除编码面外还包括印刷面),一次请求即可完成,而且最初的调用无需账户。文档中的 MRZ and the visual zone 页面(英文)说明了两者不一致时应该相信哪一个读取结果。
本页面上的所有机读区都属于同一位虚构的持有人:虚构的号码、虚构的日期,校验位则是据此计算得出的,而不是手工填写的。这里的一切都不属于任何人。