Ultralight C、Smartcardio 和 ACR122
Posted
技术标签:
【中文标题】Ultralight C、Smartcardio 和 ACR122【英文标题】:Ultralight C, Smartcardio and ACR122 【发布时间】:2014-11-29 19:32:16 【问题描述】:我正在使用带有库 SmartCardIO 的 PS/SC ACR122U 开发 Java 项目。当我输入密码并修改页面 0x2A 时,我试图再次读取标签。确实,我知道协议,我在这里 (http://www.eps.no/downloads/pdf/API_ACR128_v1.9.pdf) 发现 APDU 命令是:
FF 00 00 00 02 1A 00
但是当我介绍该 APDU 时,我收到一条异常消息:
apdu must be at least 2 bytes long
但是,我正在使用一个名为 ACE122U 工具的工具,我可以在其中向标签发送 APDU 命令,我可以看到它如何回答我。所以当我在标签没有回答之前发送命令时。
我不知道如何解决,有什么想法吗?
【问题讨论】:
【参考方案1】:难以置信,我发布了问题并再次寻找解决方案,我找到了解决方案。当然,APDU 命令是错误的。命令是:
FF:00:00:00:04:D4:42:1A:00
【讨论】:
感谢乔治维克的反馈。是的,您收到了错误,因为卡的响应太短了。很高兴你解决了... 嗨 Georgevik,你还记得你是如何得到上述命令的 'D4:42' 部分的吗?我知道 'FF:00:00:00' 是伪 APDU 的一部分,'04' 是指字节数,'1A:00' 是用于身份验证的 APDU,但无法弄清楚 'D4:42' 是什么以及如何是计算出来的吗? 我知道'D4:42' 是固定的。 IE。FF:00:00:00:04:D4:42:1A:00
FF:00:00:00:08:D4:42:11:22:33:44:55:66
@yash D4:42
部分来自 PN532 NFC 控制器芯片规范。 D4
是帧标识符。对于从主机控制器到 PN532 的帧,它是固定的。 D5
用于反方向的帧(从 PN532 到主机控制器)。 42
是 PN532 的启动器命令(称为 InCommunicateThru
)。请参阅其用户手册:nxp.com/docs/en/user-guide/141520.pdf (p66)。以上是关于Ultralight C、Smartcardio 和 ACR122的主要内容,如果未能解决你的问题,请参考以下文章
APDU 更改 Mifare Ultralight C 身份验证
Android:使用 NXP MiFare Ultralight C 进行身份验证
Windows读取NXP MiFare Ultralight C类型NFC卡片的信息