为什么现代护照的机器可读区域中的复合校验位不考虑所有数据?

时间:2016-02-29 17:39:53

标签: passport.js ocr checksum specifications

现代护照和身份证底部有一个machine-readable zone (MRZ),其中包含可能是OCR友好格式的基本识别信息。

MRZ的格式指定了一些check digits,用于帮助检测识别错误。例如,在文件编号上计算校验位,包括出生日期的校验位等。

最后还有一个“复合校验位”,它在记录的下一行计算,从而提供更一般的整体完整性检查。

记录的“上排”,其中包含姓名和姓氏,但不包含任何校验位,这意味着根本无法捕获错误或验证扫描的正确性。 / p>

我的问题如下:对于为什么在规范中做出这个选择有什么合理的解释吗?为什么规范不能提供至少一个覆盖记录中整个数据的校验位,从而促进了它所针对的“机器可读性”?该标准已经成熟并得到广泛应用,因此这不仅仅是一个错误,对吗?

我理解这个问题有些不同寻常,但我不知道在哪里可以找到答案 - 欢迎建议和实际答案。

2 个答案:

答案 0 :(得分:1)

我很好奇并且(通过实际的ICAO 9303文档)定义了机器可读区域的工作方式,并且没有找到理由。最有趣的是,尽管有关于MRZ可能出现的不同文档格式(如信用卡)的讨论,但名称行似乎始终是无数字的 - 如果存在的话!

所以我敢说,一个可能的原因是来自"真实姓名"机器可读的名称是有损的,并且似乎不是真正的标准化,因此depends on the transliteration rules in each country。意思是"真名"在国家A中转换为机器可读,然后在国家B回读可能合法地获得与原始"真实姓名"不同的东西。这使得机器可读的名称充其量是最好的;听起来好像无论如何给它一个校验位是很有意义的。同时,校验和数据可以在视觉上进行对比,因为它似乎是标准化的以使用阿拉伯数字。

再加上typical problems when trying to canonicalize names,也许你最终还是决定允许一些余地更好。

作为旁注,我刚刚意识到我拥有的3张借记卡(来自同一个国家!)的名字与我的名字略有不同。如果我必须以编程方式检查这些名称是否完全相同,我肯定会让事情变得模糊,然后我不认为我(关于?)关于一个校验位。

另一个侧面说明:在我居住的国家,我的明显陌生的名字总是让人感到有趣"处理官方文书工作的情况。我不认为我曾经设法把它写在这里;但幸运的是,这并不重要。任何官员,护士,医生,人力资源部门,无论谁听到我有正式的身份证号码,他们只是松了一口气,不再关心让这个名字正确。 (这对我来说也是一种解脱!)

所以,总结一下:需要这个数字,你最好把它弄好。这个名字很方便。

答案 1 :(得分:1)

要创建密钥(BAC)以访问存储在护照上的RFID数据,您需要文档编号,出生日期和文档到期日期。这些数字非常重要,无误读。计算出正确的密钥后,您可以使用正确的拼写从RFID芯片传输全名,图片和其他数据。