我可以使用 PCSC API 向智能卡写入和读取数据吗?
Posted
技术标签:
【中文标题】我可以使用 PCSC API 向智能卡写入和读取数据吗?【英文标题】:Can i write and read data to smart card using PCSC API? 【发布时间】:2017-10-25 08:14:50 【问题描述】:我正在寻找可以在智能卡中写入和读取数据的智能卡读卡器。我发现很多人都在使用 PCSC API。 PCSC 可以允许我将自己的数据写入卡吗? (打算将示例用户名用户号写入卡中),那么我也可以通过API将这些数据读回我自己的软件进行处理?
我浏览了一些网站,包括https://ludovicrousseau.blogspot.sg/2010/04/pcsc-sample-in-c.html
似乎Scardtransmit只能发送命令并得到回复? 不太明白它是如何工作的
【问题讨论】:
要了解通过 PCSC 发送的命令,您应该熟悉 ISO 7816-4(然后是 -9 和 -8)以及用于查找的卡的操作系统手册,实际上是哪个子集提供以及除此之外还有哪些附加/专有功能。这是复杂的事情,需要一些时间。 【参考方案1】:是的,一般来说,如果您的卡支持它并且您可以对卡进行身份验证以进行写访问,则通常这是可能的。
那里有许多不同的智能卡。 PCSC 是一个 API,最初由 Microsoft 提供,用于提供标准化的 API 以在 PC 和智能卡之间进行通信(因此得名)。由于对内存的实际读写是由智能卡芯片自己完成的,因此应用程序可以使用任何支持 PCSC 的读卡器向芯片写入数据。
当然,您的卡应该与读卡器兼容。此外,它应该是存储卡、文件系统卡或可编程智能卡。 PCSC 是为后两者设计的——根据大多数文档,智能卡应该有一个通用 CPU。然而,像 DESFire v2 这样的一些内存汽车也提供了更高级别的 CPU 接口。此外,许多读卡器提供专有 API(用于旧存储卡标准),可通过 SCardTransmit 访问,并将 CLA 字节设置为 FF
。
如何写入数据取决于智能卡。在 ISO/IEC 7816-4 中——它定义了文件系统卡,但通常也用于通用智能卡——有写入文件(更新二进制)或记录的命令。然而,DESFire 有自己的协议。您首先需要文档、测试卡和测试密钥来对智能卡进行身份验证。为了简化这一过程,许多制造商和经销商提供了开发套件,其中包括智能卡、兼容的读卡器、示例软件,有时甚至是完整的开发环境。
【讨论】:
以上是关于我可以使用 PCSC API 向智能卡写入和读取数据吗?的主要内容,如果未能解决你的问题,请参考以下文章
未检测到智能卡读卡器 - PCSC 错误 - 0x8010002e
求助 Reader PCSC Driver Error!You Must Reinstall Reader Driver!问题的解决办法