获取恩智浦MIFARE DESFire EV1卡的UID /序列号

时间:2017-01-31 00:56:27

标签: uwp mifare apdu contactless-smartcard serial-number

我目前正在制作一个项目,我希望使用具有NFC的Windows 10手机来读取智能卡的UID /序列号以查找某人的ID。我试图从中获取UID /序列号的卡是NXP MIFARE DESFire EV1。我正在寻找的ID打印在卡片上,我设法使用我的朋友的手机和Android应用程序访问它,这意味着虽然我不知道如何可以访问该号码。

我能够向卡发送APDU命令,但我不知道用哪一个来获取我正在寻找的UID /序列号。

我需要向卡发送哪些APDU命令才能获取ID?我正在寻找的ID是7个字节长。

1 个答案:

答案 0 :(得分:3)

通常,检索诸如非接触式卡的防冲突标识符(UID)之类的参数在很大程度上取决于阅读器和阅读器与应用程序之间的抽象层。例如,在Android上有一个简单的方法%PATH%来获取NFC标签/非接触式智能卡的防冲突标识符。

但是,对于MIFARE DESFire,还有一种通过APDU获取该参数的方法。您只需发送GET VERSION命令即可查询版本信息(以及卡片UID):

C-APDU: 90 60 0000 00
R-APDU: 04 01 YY 01 00 ZZ 05 91AF

C-APDU: 90 AF 0000 00
R-APDU: 04 01 01 01 04 ZZ 05 91AF

C-APDU: 90 AF 0000 00
R-APDU: XXXXXXXXXXXXXX UUUUUUUUUU VV WW 9100

getId()是卡的UID(如果卡处于随机防冲突标识符模式,则全部为零)。

请注意,甚至还存在MIFARE DESFire版本信息here的解析器(在评论中指出为ThomasRS)。