2012-10-30 102 views
1

正如标题所述;是否有APDU命令来检索标签的UID?我正在使用Java,使用ACR122-u读卡器和javax.smartcardio.*包,我想从扫描仪上的标签获取UID。智能卡库可以发送CommandAPDU,但我需要找出要发送的APDU。谷歌一直没有对我很友好的就这一个,给我提供了数以千计的某种无用的数据表...Mifare Classic 1k APDU命令用于检索标签UID

任何帮助将是巨大的比不:)

+0

也许[this](http://stackoverflow.com/questions/12011726/reading-block-from-mifare-classic-using-javax-smartcardio)可以帮助你! [拉多](http://stackoverflow.com/users/1607656/rado)已经问过这样的问题,并在他的问题中回答了这个问题。我希望它能帮助你。 – Unknown222

回答

8

犹未晚,但实际上有一个APDU只是检索UID:(字节)0xFF时(字节)0xCA,(字节)为0x00,(字节)为0x00,(字节)为0x00

FF CA 00 00 00

在Java:byte[] getuid = new byte[] { (byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x00 };

如果您发送此APDU,响应数据将会发送是卡:)刚UID(远远高于有更多的信息和不必设置一个偏移量来得到你需要的信息更容易...)

+0

我相信你需要改进你的问题,增加发送这个命令的全部结构,因为在链接中点击更容易看到。 –

+0

他有很多其他的帖子解释了如何发送和接收APDU到卡,以及它的源代码。我只是告诉他他必须发送APDU来检索UID。 – alvaroga91

0

的APDU命令读取UID是

byte[] baReadUID = new byte[5]; 

    baReadUID = new byte[] { (byte) 0xFF, (byte) 0xCA, (byte) 0x00, 
      (byte) 0x00, (byte) 0x00 }; 

All Complete code is here....