android nfc 阅读驾驶执照 BAC 与 BAP

标签 android nfc

使用安卓设备 nfc 读取我的国家身份证和驾驶执照(提示:两者都有 3 行类型 TD1 的机读区,并且驾驶证上有一个号码 8digits+'E'靠近芯片,女巫我不知道是干什么用的!?)

  • 身份证部分我使用了jmrtd库(BAC协议(protocol),我成功读取了所有我想要的数据组{1,2,11,12})

  • 对于驾驶执照,在阅读了一些标准后我应该做 BAP 而不是 BAC 所以我实现了一个与 PassportService 相同的 DLicenseService 类,但有一些小的变化:

    • 将 EF_COM 更改为 001F,将 AID 更改为 A0000002480200(女巫在第一次尝试中起作用)...
    • 我正在使用自定义 key 派生算法将 BAC 作为 BAP,三元组(docNumber、dateOfBirth、dateOfExpiry)不起作用...

我的问题是:

  • 是否有任何防止错误的 key 推导 多次尝试(假设 BAP == BAC)因为水肺服务现在失败了!!...请不要不要告诉我有,我的卡被卡住了...
  • BAP 和 BAC 是否等同?我应该尝试其他协议(protocol)吗?
  • 您知道驾驶执照最常用的 key 种子派生算法吗(例如最后 6 位文档数字的 SHA1...)
  • 是否有像 jmrtd 这样的旅行证件库来处理驾驶执照?

最佳答案

  • 是的,BAC 和 BAP 是等价的
  • 三胞胎曾考取驾照
  • 我在 jmrtd 代码之上实现了我所有的逻辑,每一个想法都很好,基本上我实现了:
    • DLicenseService 类
    • 我感兴趣的 COMFile 和所有 DGxFile 都考虑了 iso/IEC FCD 18013-2 标准中的正确 SFI 和标签值。

关于android nfc 阅读驾驶执照 BAC 与 BAP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62911446/

相关文章:

android - HCE 服务和 BIND_NFC_SERVICE 权限

android - NFC:S-beam 和 Android beam 有什么区别?

Android:安装一天后如何显示按钮?

android - 使用 fetch 在 react-native 中发布一个 blob

java - Android模拟运行dexer失败(Win 7)

android - 如何通过代码通过蓝牙将文件从Android设备发送到其他设备

android - Kotlin android 扩展,无法导入包

c# - 如何从 viewmodel 使用 iOS/Xamarin 扫描 NFC 标签

android - NFC广播问题

android - 从另一个 Context 向 HostApduService 传递信息