SCR3310v2.0和SLE5528读/写?

时间:2011-08-01 06:56:38

标签: smartcard smartcard-reader

我有SCR3310v2.0读卡器和芯片卡SLE5528,有任何代码样本能够记录和读取卡信息,或者有没有自由软件的人这样做?

1 个答案:

答案 0 :(得分:3)

我正在使用ACR38,所以可能会有所不同。

如果你刚开始使用智能卡,你应该挑衅地获得一些SDK(这基本上就是你所要求的)。

至于SLE5528: 该卡非常基本,您需要注意3个命令。

1)读取,可以随时使用此命令(只要您已连接)。使用ACR38,我将发送此命令:

FF B2 MSB LSB Length

这是 APDU 命令,第一个字节名为 CLA ,第二个字节是 INS 。这两个通常用于描述命令(可能总是)。那么你有 P1 P2 ,这两个字节通常用于描述卡上的地址或命令的范围。最后一个是 Lc ,在这种情况下(可能总是)它表示要读取的字节数。这些之后的任何字节都是命令可能需要的数据字节。

请注意,由于这个行业如此疯狂,一些制造商可能会使用不同的命令。如果我没记错的话,我在INS中使用的手册中指定了B0,但在SDK演示代码中他们使用了B2,这也是唯一有用的。

2)验证PSC ,如果您打算使用write命令,则必须先使用此命令。 (每次会议一次)。

FF 20 00 00 02 PSC1 PSC2

通常默认的PSC代码是FF FF。

3),在使用卡验证后,您可以执行此命令来写入数据:

FF D0 MSB LSB Length DATA1 DATA2 DATA3 and so on.....

如果我想更改PSC代码,我所要做的就是将它的三个字节写入地址03 FD。请注意,实际验证代码只有两个字节,但由于某种原因,我总是需要将第一个字节写为FF,然后将实际的两个字节写入我要验证的位置。我相信这背后有一些原因,我只是不知道它是什么。

因此,要编写一个简单的程序,首先从地址A4 03读取14个字节,然后使用默认的PSC代码验证卡。最后将PSC代码更改为A2 B2;我们会这样做:

<< FF B2 A4 03 0E
>> FF FF FF FF FF FF FF FF FF FF FF FF FF FF 90 00
<< FF 20 00 00 02 FF FF
>> FF FF FF 90 00
<< FF D0 03 FD 03 FF A2 B2
>> FF A2 B2 90 00

请注意,阅读器将始终向我们期待的返回两个额外的字节。这两个字节称为SW代码(或状态代码)。 90 00意味着一切都好。你可以找到每个返回代码含义的参考文献

这是我正在使用的阅读器手册: http://www.acs.com.hk/drivers/eng/PMA_ACR38x.pdf

如果可以,请使用java,因为他们已经内置了使用智能卡的功能,否则。你可以做我做的,并使用Windows的WinSCard API。

相关问题