PySmartCard--python智能卡操作库


推荐阅读1 Smart Card Issuance & Testing Platform--智能卡行业工具

推荐阅读2 智能卡Android平台工具SmartCardTools

1. 简介

PySmartCard[PythonSmartCatd]是一个操作智能卡(CPU 卡)的python库

PySmartCard封装了PCSC/D8/D6/T6等读写器的CPU卡操作功能,包括:连接读写器,上电复位,发送apdu指令,断开读写器。同时封装了cpu卡卡片个人化的时候需用到的一些常用算法,包括:3DES_ECB,3DES_CBC,SM4_ECB,SM4_CBC,MAC,MAC_SM4等

PySmartCard支持Windows/Linux系统使用,支持32位/64位的python,但由于德卡的D8/D6/T6库没有提供64位的版本,Linux下提供的Demo我这边测试也发现有点问题,所以暂时无法全面支持所有平台,下面分别说明一下

PCSC读写器:支持Windows/Linux下的32位/64位的python[要正确使用PCSC读卡器,请根据不同平台安装相应驱动]

D8读写器: 支持Windows 下的32位的python[如果你使用的是64位的系统,请使用32位的python进行操作]

D6读写器: 支持Windows 下的32位的python[如果你使用的是64位的系统,请使用32位的python进行操作]

T6读写器: 支持Windows 下的32位的python[如果你使用的是64位的系统,请使用32位的python进行操作]

2. 安装

目前PySmartCard已上传至PyPi,可以通过指令 pip install PySmartCard 进行安装

也可以通过下载wheel文件来进行安装,下载wheel文件

3. 使用说明

PySmartCard库的使用非常简单,安装好PySmartCard包后,导入PySmartCard中的CpuCard模块,然后使用对应类的

connect_device/power_on/send_apdu/disconnect_device等函数即可

PySmartCard库的安装目录下有一个Example.py文件,参考该文件就可以完成相应操作,下面贴一个windows下使用D6的例子

from PySmartCard.CpuCard import D6Reader

def test_d6():
    print("Test D6Reader...")
    d6 = D6Reader()

    result = d6.connect_device()
    if result < 0:
        print("ConnectDevice Failed!")
        return -1
    else:
        print("ConnectDevice Success...")

    result = d6.power_on()
    if len(result) < 1:
        d6.disconnect_device()
        print("Device PowerOn Failed!")
        return -1
    else:
        print("Device PowerOn Success...")
        print("ATR: ", result)

    apdu = "0084000008"

    revc_info = []

    send_apducommand(d6, apdu, revc_info)
    if revc_info[1] != "9000":
        print("Send Apdu Failed!")
        d6.disconnect_device()
        return -1

    d6.disconnect_device()
    return 0

运行结果如下:

 

暂无评论

注册用户登录后才能发表或者回复评论,请先登录 注册。