2012-10-24 190 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