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

KT.*_*KT. 7 ocr checksum specifications passport.js

现代护照和身份证在其底部有一个机器可读区(MRZ),其中包含可能是OCR友好格式的基本识别信息.

MRZ的格式指定了多个校验位,用于帮助检测识别错误.例如,有一个校验数字,计算在文件编号,一个覆盖出生日期的校验位等.

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

但是,包含姓名和姓氏的记录的"上排"不包含任何校验位,这意味着根本无法捕获错误或验证扫描的正确性.

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

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

hmi*_*ail 2

我感到好奇,并(粗略地)浏览了定义机器可读区域如何工作的实际 ICAO 9303 文件,但没有找到任何理由。最有趣的是,尽管存在关于可能出现机读区的不同文档格式(如信用卡)的讨论,但姓名行似乎始终是无校验位的 \xe2\x80\x93(如果存在的话)!

\n\n

所以我敢说,一个可能的原因是从“真实姓名”到机器可读姓名的映射是有损的,并且似乎没有真正标准化,因此这取决于每个国家/地区的音译规则。这意味着,在 A 国将“真实姓名”转换为机器可读格式,然后在 B 国读回,可能会合法地得到与原始“真实姓名”不同的信息。这使得机器可读的名称充其量是建议性的;无论如何,听起来给它一个校验位没有多大意义。同时,校验和数据可以在视觉上进行对比,因为它似乎已标准化为使用阿拉伯数字。

\n\n

再加上尝试规范化名称时的典型问题,也许您最终也会决定最好留出一些余地。

\n\n

顺便说一句,我刚刚意识到我拥有的 3 张借记卡(来自同一国家/地区!)中的每张我的名字都略有不同。如果我必须以编程方式检查这些名称是否都相同,我肯定会让事情变得模糊,然后我认为我不会(太在意?)关心校验位。

\n\n

进一步的旁注:在我所居住的国家,我明显陌生的名字在处理官方文书工作时总是会造成“有趣”的情况。我想我从来没有成功地把它写在这里;但幸运的是这并不重要。任何官员、护士、医生、人力资源部,无论谁听说我有正式的身份证号码,他们都会松一口气,不再关心名字是否正确。(这对我来说也是一种解脱!)

\n\n

所以,总而言之:这个数字是需要的,而且你最好把它弄对。名字是为了方便。

\n

  • 我知道这些名字可以以不同的方式音译,但它已经在机读区上音译了,并且有一种独特的有效方法来计算*该*音译的有效校验位。毕竟,当我从机读区读取数据时,我感兴趣的是特定的音译。 (2认同)