2012-10-24 177 views
6

我在寻找APDU来查找联系少的ISO 14443智能卡的UID以及如何使用它在Linux终端中打印。问题是我发现很多人在谈论它,但没有解决方案。任何人都可以帮助这个方面? 谢谢APDU命令获取智能卡uid

回答

7

查看other answer,很可能大多数读者确实支持通过读卡器到现在。


没有人能帮助作为UID在ISO 14443中指定T = CL的传输协议而APDU的在ISO 7816应用层协议中指定。

因此,您需要访问较低级别的API以供您的非接触式阅读器使用。 PCSC将不够用(除非已经为返回UID的特定阅读器执行了传递)。

+0

那么,什么可以读取智能卡的UID与PCSC工作,而可能的方式-lite? – Salman

+0

我会看看底层的阅读器库。无论如何,PCSC最初是为接触式阅读器而制作的。问题在于PCSC以外的任何东西都可能是专有驱动程序。 –

+0

世界上每个非接触式卡都有“UID”吗? (即不存在两张具有相同UID的不同卡?)它是固定的还是每个会话都是随机数?我们为什么需要它?仅用于防碰撞机制? – Abraham

9

“获取数据命令”在PCSC 3 v2中定义。如果您的驱动程序PCSC V2兼容,你可以用它获得UID:

Class = 0xFF 
INS = 0xCA 
P1 = 0x00 
P2 = 0x00 
Le = 0x00 (return full length: ISO14443A single 4 bytes, double 7 bytes, triple 10 bytes, for ISO14443B 4 bytes PUPI, for 15693 8 bytes UID) 

返回的值是:

Data+SW1SW2 
+0

使用opensc读取UID的Linux命令: opensc-tool --send-apdu FF:CA:00:00:00 - 等待 –

+0

感谢@nchokoev! 解决了我的问题与pcsclite(节点适应) – Stilmittel