SCR3310v2.0和SLE5528读/写?

val*_*imo 1 smartcard smartcard-reader

我有SCR3310v2.0读卡器和芯片卡SLE5528,有没有代码示例可以记录和读取卡信息,或者有没有免费软件可以做到这一点?

Sli*_*ipe 5

我使用的是 ACR38,所以可能有点不同。

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

至于SLE5528:该卡非常基本,有3个命令您需要了解。

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

FF B2 MSB LSB Length
Run Code Online (Sandbox Code Playgroud)

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

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

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

FF 20 00 00 02 PSC1 PSC2
Run Code Online (Sandbox Code Playgroud)

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

3)写入,与卡验证后可以执行此命令写入数据:

FF D0 MSB LSB Length DATA1 DATA2 DATA3 and so on.....
Run Code Online (Sandbox Code Playgroud)

如果我想改变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
Run Code Online (Sandbox Code Playgroud)

请注意,读取器总是会返回我们期望的两个附加字节。这两个字节称为SW代码(或状态代码)。90 00 表示一切都好。您可以找到每个返回码含义的参考资料

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

如果可以的话,请使用java,因为它们具有用于处理智能卡的内置函数,否则。你可以像我一样使用Windows 的WinSCard API。