使用Python读取银行卡信息
- 发表于
- 周边
之前网上有所谓专家认为,NFC手机有可能成为黑客的“提款机”;也有分析认为,手机只有紧贴着银行卡才能读出有限的卡内信息,也并不能进行转账操作,因此风险并不大。看了这么多,不如自己用python读取一下,看看到底能读取到什么信息呢?
前置准备
- ACR122U
- 银行卡数张
- ACR122UTools
- EMV TLV查询分析器
银行卡能读取出什么信息?
- 姓名
- 身份证
- 银行卡号
- 银行卡有效期限
- 近十条消费记录
- 电子现金余额(不是银行卡余额)
但并不是所有的银行卡都能读出这些信息,经网友测试:
银行卡 | 卡号显示 | 卡内剩余金额 | 电子钱包余额 | 近10笔交易 | 身份证号 |
---|---|---|---|---|---|
广州银行 | 后4位 | 不可读 | 可读 | 可读 | 不可读 |
建设银行 | 全卡号 | 不可读 | 可读 | 可读 | 开头末尾2位 |
交通银行 | 后4位 | 不可读 | 可读 | 可读 | 不可读 |
招商银行 | 全卡号 | 不可读 | 可读 | 可读 | 开头末尾2位 |
中国银行 | 全卡号 | 不可读 | 可读 | 可读 | 不可读 |
工商银行 | 全卡号 | 不可读 | 可读 | 可读 | 不可读 |
农业银行 | 全卡号 | 不可读 | 可读 | 可读 | 不可读 |
银行卡最多可以记录10条交易日志,这10条是循环日志,可直接读取,但网银或者网上交易NFC读不出,因为交易时芯片没有上电不会记日志。持卡人姓名卡号等如果是明文则必然可以读出,姓名卡号能否读出取决于银行的数据(姓名可以不写到卡里,卡号可以密文)。
证件号则是PBOC3.0规范新增的,读不出证件号的银行可可能是PBOC2.0。另外,电子现金余额可以100%读,卡内余额(主账户)是读不出的,电子现金账户的钱(余额上限一般为1000)是可以随便刷的,不需要密码。
怎么读取?
首先将ACR122U和电脑连接起来,Win10不需要安装驱动的。
接下来我们使用ACR122UTools使用指令去读取一下银行卡信息:
创建一个新的连接。
发送指令选择卡片,命令:
00A4040007A0000003330101
接下来获取银行卡卡号、有效期等信息,指令:
00B2011400
因为这张图里有自己的信息,所有我从网上找了张图片解析出卡号和有效期等信息:
其他的我都不截图了,这里给出指令大家尝试一下:
00B2010C00
获取最近十条交易记录:
00B2015C00
00B2025C00
00B2035C00
00B2045C00
...
00B2095C00
emmm,知道如何去获取数据之后,接下来就需要使用python脚本编写程序获取银行卡数据
python读取
我们需要使用到pyscard这个库,安装也很简单:
pip install pyscard
接下来我们尝试一下和银行卡交互数据
>>> from smartcard.System import readers
>>> from smartcard.util import toHexString
>>>
>>> r=readers()
>>> connection = r[0].createConnection()
>>> connection.connect()
>>> SELECT = [0x00,0xA4,0x04,0x00,0x07,0xA0,0x00,0x00,0x03,0x33,0x01,0x01]
>>> data, sw1, sw2 = connection.transmit( SELECT)
>>> print data
.......data.......
我们选择卡片之后就需要发送读取信息的指令
>>> SELECT = [0x00,0xB2,0x01,0x14,0x00]
>>> data, sw1, sw2 = connection.transmit(SELECT)
>>> print data
.......data.......
通过处理ASC122U返回的数据,我们可以编写如下Python脚本:
工具地址
链接: https://pan.baidu.com/s/1fmy-wlTsrI-FT7UNs-lziQ 提取码: 4b86
本文引用了以下文章,感谢
https://www.zhihu.com/question/24106690
https://www.cnblogs.com/zfyouxi/p/4078418.html
https://www.cnblogs.com/nightnine/p/5502753.html
http://blog.sina.com.cn/s/blog_625033800102uxwt.html
本文作者:NIANHUA,via
原文连接
的情况下转载,若非则不得使用我方内容。