Mifare desfire apdu 命令

Posted

技术标签:

【中文标题】Mifare desfire apdu 命令【英文标题】:Mifare desfire apdu command 【发布时间】:2020-07-03 07:36:23 【问题描述】:

我有一张包含 Mifare Desfire EV1 非接触式芯片的智能卡,我正尝试向非接触式部分 (Mifare Desfire) 发送带有主密钥的身份验证请求,因此我发送此命令:

 -- Auth Req with Master key
         >>> cmd  = 90 AA 00 00 01 00 00
         <<< data =
         <<< sw   = 68 84

我不知道为什么会收到此错误代码,似乎该命令已发送到联系船?

您能帮我找出问题所在吗?在“激活”到非接触部分之前有什么步骤吗?

顺便说一句:我尝试了这些读者:Omnikey5321v2 和 ACR122U-A9

谢谢!

【问题讨论】:

【参考方案1】:

我不确定您得到的响应状态 (SW = 0x68 84) 究竟意味着什么。但是,您的命令中似乎缺少 LE 字节。

原生 MIFARE DESFire EV1 APDU 的封装:

CLA    | INS     | P1    | P2    | LC        | Data        | LE
0x90     MIFARE    0x00    0x00    Length of   MIFARE        0x00
         DESFire                   wrapped     DESFire EV1
         EV1 CMD                   data        command
         Code                                  parameter(s)

P1P2 一样,LE 字节应始终存在并设置为0x00,并且不允许使用任何其他值。

所以你的身份验证命令实际上应该是:

cmd  = 90 AA 00 00 01 00 00 00

【讨论】:

以上是关于Mifare desfire apdu 命令的主要内容,如果未能解决你的问题,请参考以下文章

使用 javax.smartcardio 时 DESfire EV1 为 PPS 命令包装 APDU 的问题

mifare 经典上的 APDU 写入块命令

APDU 响应 910B 对 DESFire EV2 卡意味着啥?

javax.smartcardio:如何将本机命令发送到 Desfire 卡?

Mifare DESFIRE EV1 GetCardUid

Mifare DESFire 读取文件