2013-07-16 144 views
0

如何使用APDU命令獲取智能卡的序列號? 我試圖通過使用winscard.dll的SCardGetAttrib函數來查詢它,但沒有運氣,我被告知使用APDU命令來做到這一點,因爲沒有標準的方法來獲取序列號。問題是我無法弄清楚我的智能卡是什麼類型的!所以我查閱了很少流行的智能卡製造商的文檔,但沒有找到獲得序列號的方法!APDU命令獲取智能卡的序列號

我的讀卡器是ACR88。

回答

2

在A0下面的命令,可能需要00或別的東西(下面的代碼工作的SIM卡上):

SELECT MF:

=> A0A40000023F00  
<= 9F16 

SELECT EFiccid:

=> A0A40000022FE2  
<= 9F0F 

READ BINARY:

=> A0B000000A  
<= 984310011823020084F99000 

您的ICCID已被交換並進行了luhn檢查(984310011823020084F9 => 8934011081322000489)。

+0

什麼是最後的0xF9翻譯成9?是'F'一些有點「不理我」的性格? – BlueWizard

+0

是的,這是一個填充。 – takumar

0

爲SCOSTA特定的卡,你可以使用下面的命令來讀取芯片序列號下的標籤46, 00CA0046XX或00CA0246XX 「上次XX取決於爲了解長度的卡變化給00和將給予「迴應6CXX',你可以使用xx來獲取正確的數據,這是因爲卡到卡的序列號長度不同