APDU命令获取智能卡的序列号

时间:2013-07-16 13:30:51

标签: c# smartcard apdu

如何使用APDU命令获取智能卡的序列号? 我试图通过使用winscard.dll的SCardGetAttrib函数来查询它而没有运气,我被告知使用APDU命令来执行此操作,因为没有标准方法来获取序列号。问题是我无法弄清楚我的智能卡是什么类型的!所以我查看了一些流行的智能卡制造商的文件,没有运气找到获取序列号的方法!!

我的读卡器是ACR88。

2 个答案:

答案 0 :(得分:3)

在下面的命令中,A0可能需要为00或其他内容(以下代码适用于SIM卡):

SELECT MF:

=> A0A40000023F00 
<= 9F16

选择EFiccid:

=> A0A40000022FE2 
<= 9F0F

阅读二进制文件:

=> A0B000000A 
<= 984310011823020084F99000

您的ICCID已被交换并进行了支票检查(984310011823020084F9 =&gt; 8934011081322000489)。

答案 1 :(得分:0)

对于SCOSTA特定卡,您可以使用以下命令读取TAG 46下的芯片序列号, 00CA0046XX或00CA0246XX “最后XX取决于卡的不同,因为知道长度为00并且会给出'6CXX'的响应,你可以使用xx来获取正确的数据,这是因为卡到卡的序列号长度不同