如何使用 ACR122U 验证 NTAG213
Posted
技术标签:
【中文标题】如何使用 ACR122U 验证 NTAG213【英文标题】:How to authenticate NTAG213 with ACR122U 【发布时间】:2017-05-29 08:19:50 【问题描述】:我正在使用带有 NTAG213 卡的 ACR122U 读卡器。该卡使用密码52 84 00 08
进行密码(读取和写入)保护。我应该运行哪些 APDU 命令来验证卡并在验证后读取它的第 30 页和第 31 页?
我知道使用 MiFare 1k 可以加载密码并对扇区进行身份验证,但我不确定使用 ACR122U 读卡器的 NTAG213 卡如何进行身份验证。
【问题讨论】:
【参考方案1】:使用 ACR122U,您需要向读卡器内的 PN532 NFC 控制器芯片发送直接命令,以便交换此类低级命令。例如,您可以使用InCommunicateThru
命令向标签发送原始命令:
这样,您可以向标签发送密码验证命令(PWD_AUTH
):
对这个命令的响应应该是这样的
D5 43 00 包装 90 00同样,您可以发送READ
命令读取任何页面:
XX
是 1 字节的页面地址。
请注意,读取命令也应该使用(更强大?)InDataExchange
命令:
【讨论】:
我正在使用 ACS 的 ACR122U 工具向 NTAG 213 发送命令。发送身份验证命令并尝试读取读/写保护页面后,会发生以下情况: D5 43 02 90 00 我似乎根本无法阅读任何受身份验证保护的内容。我应该使用其他程序与 ACR122u 通信吗? @KaZaaV2 这很奇怪。状态码 0x02 表示 CRC 错误(这不应该真的发生,因为 PN532 会自动处理 CRC)。您是否也尝试过该命令的 InDataExchange 版本? @KaZaaV2 另外:身份验证有效吗? IE。您收到D5 43 00 xx xx 90 00
形式的回复了吗?响应 APDU FF 00 00 00 06 D4 06 63 02 63 03
,你得到了什么价值?
@KaZaaV2 抱歉,我刚刚意识到我没有在最后两个 APDU 命令中将 Lc 设置为正确的值。你自己解决了吗?如果没有,请尝试我更新的答案中的命令。
是的,我尝试了 InDataExchange 版本的命令并得到了同样的结果。我试过你上面说的东西,这就是我得到的:ACR122U APDU 命令< FF 00 00 00 07 D4 42 1B 88 04 00 00 > D5 43 00 00 00 90 00
ACR122U APDU 命令< FF 00 00 00 06 D4 42 06 63 02 63 03 > D5 43 01 90 00
ACR122U APDU 命令< FF 00 00 00 07 D4 42 30 04 > D5 43 02 90 00
我错过了什么吗?以上是关于如何使用 ACR122U 验证 NTAG213的主要内容,如果未能解决你的问题,请参考以下文章
无法验证具有 7 字节 UID ACR122U 的 NFC 标签