如何使用pyscard列出智能卡上的文件

2024-10-06 12:08:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我得从智能卡上读出一个文件。该卡是由一个数字行车记录仪编写的,它可以监控车辆的运动。我可以用psycard(http://pyscard.sourceforge.net/user-guide.html)连接到智能卡读卡器,但是我不知道如何列出卡上的文件以及如何下载它们。我在研究ISO标准,看起来我必须使用ISO/iec7816标准和专用文件(http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-4_5_basic_organizations.aspx),但我不知道如何从pyscard做到这一点?在

已经有一些程序(例如:http://en.tachoterminal.net/products/tachoterminal-reader/)执行完全相同的操作,但它们是独立的程序。我需要将这个功能集成到另一个软件中。在

我不知道该用哪种协议。有人能帮帮我吗?在


Tags: 文件程序http标准netiso数字sourceforge
1条回答
网友
1楼 · 发布于 2024-10-06 12:08:21

在这个答案中,我假设您是指根据ECC第3821/85号法规的行车记录仪驱动卡。在这种情况下,智能卡使用ISO/iec7816-4apdu进行通信,并且它公开了基于ISO/iec7816-4的文件结构。在

使用pyscard打开与卡的连接后,可以调用该连接对象上的transmit()方法来转换apdu(另请参见Ludovic Rousseau's blog

connection = reader.createConnection()
connection.connect()
data, sw1, sw2 = connection.transmit(cmd)

与行车记录仪驱动卡的通信流程如下所示:

  1. 选择行车记录仪应用

    ^{pr2}$

    对于这个命令,cmd将是:

    cmd = [ 0x00, 0xA4, 0x04, 0x0C, 0x06, 0xFF, 0x54, 0x41, 0x43, 0x48, 0x4F ]
    
  2. 按文件标识符选择基本文件(xxxx

    00 A4 02 0C 02 xxxx
    
  3. 读取二进制文件以获取文件数据(zz字节,偏移量xxyy

    00 B0 xx yy zz
    

您可以在管理文档(here)中找到驱动卡协议和数据结构的完整规范。在

相关问题 更多 >