【问题标题】:Reading NfcA MifareClassic NFC Tags读取 NfcA MifareClassic NFC 标签
【发布时间】:2013-02-04 00:03:20
【问题描述】:

我有不同的标签:

我想读出我的钥匙。 UID 为20 66 be 52,ATQA 为00 40,SAK 为00 08(ATQA 和SAK 与Amazon 密钥相同,所以我猜它也是Mifare Classic 1KB)

每当我尝试transceive(byte[]) 时,我都会收到TagLostException。有趣的事实:广告标签效果更好但仍然抛出IOException: Transceive failed

尝试将标签(对于我的密钥)解析为 IsoDepMifareClassic 会抛出 Nullpointer。只有NfcA 有效,但我无法从标签中读取任何数据。

谁能提供我的有效命令或任何其他方式从 Android 读取内容。

MifareClassic mfc = MifareClassic.get(tagFromIntent);
mfc.connect(); //Nullpointer

编辑: 似乎问题可能出在我的 Nexus 4 上(主要是为 NFC 东西买的 :( )它似乎不支持 MIFARE Classic 标签。但如果您仍有想法,请将它们写下来。

【问题讨论】:

    标签: java android nfc mifare


    【解决方案1】:

    好的,现在很清楚:Nexus 4 不支持 MIFARE Classic(例如 MIFARE Ultralight 工作)

    可以读取 UID、ATQA 和 SAK,但它不能写入或读取块/扇区。

    很遗憾,像 Nexus 4(以及 Nexus 10)这样的高端/旗舰设备无法读取最流行的标签。

    【讨论】:

    • 对。它不支持它不是因为它不符合 NFC 论坛,而是因为它使用了 Broadcom 和 Google 不想许可的专有加密算法 (Crypto 1)。在配备 NXP NFC 控制器(Nexus S、Galaxy Nexus 等)的设备上,您可以免费获得,因为硬件支持它。通常,您需要检查结果 SomeNfcTech.get() 是否为 null,因为不能保证支持所有内容。
    • 此外,Crypto 1 算法完全被破坏了,真的没有理由在新项目中使用 Classic。
    • 我也不会为完全损坏的密码支付许可费。 Mifare Classic 的消失对 NFC 技术来说是件好事。
    • 理论上是否可以在 Android 设备上的软件中重新实现 Crypto 1(可能通过修改 NFC 软件堆栈/驱动程序,还是必须在 NFC 硬件上实现?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 2015-01-06
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多