首页 > 编程语言 >PYTHON apdu命令

PYTHON apdu命令

时间:2022-10-12 09:35:56浏览次数:76  
标签:0000 6000 apdu PYTHON 认证 命令 print FF86 0501

A实例化读卡器:pcsc = PcscReader()
B获取所有的读卡器列表:readerName = pcsc.get_pcsc_readerlist()

readerNameList = readerName.split(';')
for i in range(len(readerNameList)-1):
  print("{} {} :{}".format('reader',i,readerNameList[i]))

C   useReaderName = "SCM Microsystems Inc. SDI010 Contactless Reader 0"

useReaderName = "SCM Microsystems Inc. SDI010 Smart Card Reader 0"
useReaderName="ACS ACR122 0"

ATR = pcsc.connect_device(useReaderName)
print(ATR)
if ATR:
  print("ConnectDevice Success...")
  print("ATR: ", ATR)
  bz=1
else:
  print("ConnectDevice Failed!")

'''上电'''
print('*'*40)
#通信界面类型: 1-contact reader 2-contactless reader  #1有线  2无线
readerType = 2
if 'Contactless'.lower() in useReaderName.lower():
  readerType = 2
if 0== pcsc.power_on(readerType):
  bz=2
  print("Device PowerOn Success...")
else:
  print("Device PowerOn Failed!")

 

D加载密码(FFFFFFFF):

apdu1='FF82 0000 06FF FFFF FFFF FF'
recv_list = []

sendApduCommand(pcsc,apdu1, recv_list, readerType)

if recv_list[1] !="9000":
  print("Send Apdu Failed!")

E针对特定扇区06区进行密码认证
apduxx='FF86 0000 0501 003C 6000'
apduyx='FF86 0000 0501 003C 6100'
#FF86 0000 0501 0000 6000认证keya 00区 FF86 0000 0501 0000 6100 认证keyb 00区
#FF86 0000 0501 0010 6000认证keya 01区 FF86 0000 0501 0010 6100 认证keyb 01区
#FF86 0000 0501 0014 6000认证keya 02区 FF86 0000 0501 0014 6100 认证keyb 02区
#FF86 0000 0501 001E 6000认证keya 03区 FF86 0000 0501 001E 6100 认证keyb 03区
#FF86 0000 0501 0028 6000认证keya 04区 FF86 0000 0501 0028 6100 认证keyb 04区
#FF86 0000 0501 0032 6000认证keya 05区 FF86 0000 0501 0032 6100 认证keyb 05区
#FF86 0000 0501 003C 6000认证keya 06区 FF86 0000 0501 003C 6100 认证keyb 06区

recv_list = []
sendApduCommand(pcsc,apduxx, recv_list, readerType)
if recv_list[1]=="9000":
  printf("密码正确")#第D步加载的密码FFFFFFFF正确

标签:0000,6000,apdu,PYTHON,认证,命令,print,FF86,0501
From: https://www.cnblogs.com/xkdn/p/16783363.html

相关文章

  • python高阶函数
    '''defcounter(base):definc(step=1):nonlocalbasebase+=stepreturnbasereturnincfoo=counter(5)foo2=counter(5)print(foo==foo2)'''#sorte......
  • python字典扁平化
    '''source={'a':{'b':1,'c':2},'d':{'e':3,'f':{'g':4}}}target={}deffun(sdict,dictkey=''):fork,vinsdict.items():ifisinstance(v,dict):fun(v,......
  • python写平台学到的东西
    1、env_dict.keys(): 获取字段所有的键,比对字符是否有里面的键 env_key=9env_dict={"1":"dev","2":"test","3":"staging"}ifenv_keynotinenv_dict.keys()......
  • python(闭包函数与装饰器)
    今日内容概要global与nonlocal函数名的多种用法闭包函数装饰器简洁介无参装饰器装饰器模板装饰器语法糖及修复技术global和nonlocalmoney=666......
  • 【GIS开发】osgEarth依赖库PROJ(Python)
    文章目录​​1、OSGeo/PROJ(C++)​​​​1.1编译sqlite3​​​​1.2编译libtiff​​​​1.3编译openssl​​​​1.4编译curl​​​​1.5编译PROJ9​​​​2、pyproj(pytho......
  • Python 多进程 multiprocessing 使用示例
    multiprocessing文档:​​https://docs.python.org/zh-cn/3.10/library/multiprocessing.html​​​Process、Lock、Semaphore、Queue、Pipe、Pool:​​https://cuiqingcai.......
  • 【机器学习】Python常见用法汇总
    【机器学习】Python常见用法汇总作者简介:在校大学生一枚,华为云享专家,阿里云星级博主,腾云先锋(TDP)成员,云曦智划项目总负责人,全国高等学校计算机教学与产业实践资源建设专家委......
  • Python 远程部署利器 Fabric2 模块
    fabric 官网英文文档:​​http://www.fabfile.org/​​《Python自动化运维技术与最佳实践》如何用Fabric实现无密码输入提示的远程自动部署:fabric实现远程操作和部署:简介F......
  • Linux中rpm安装命令
    1.RPM安装RedHatPackageManager的缩写,是红帽软件包工具。RPM的提供可升级,具有强大查询功能,支持安全验证的通用型Linux软件包管理工具。由于这种软件管理方式非常方便,所......
  • 一文了解 Python 中的对象比较方法 is 和 == 及其本质
    1Python中的对象ID我们在学习基础的时候没听说Python有C或C++中的指针啊,Python中指针是什么?先把指针这个概念放一放,一提到指针可能初学C和C++的人都害怕(本人......