M1卡一卡一密码的自动化实现

每张卡出厂在扇区0,都有UID,读取UID是不要密码的,因此可以根据uid的4个字节进行加密,生成AB密码,密码的生成有多种方式,分区间,取余取整,等等计算。这样破解也只是破解一张卡密码,对代理商造成的损失可以降到最低,可以使用qt开发上位机,以及安卓app,批量初始化以及充值。M1卡发展多年,存在uid相同以及可以更改的uid卡,这样破解了一张卡,就可以根据卡内数据伪造卡了,鉴于此,基于uid和卡号进行二次加密,密码正确,还是二次鉴权正确卡才合法。

关于m1卡写卡失败,却返回成功的具体分析,刷卡过快,m1卡快速离开刷卡区,慢慢脱离刷卡区,会出现写卡成功,返回失败,这是非正常操作,处理方式,写卡默认成功,刷卡预扣,少了预扣;返还预扣,刷卡过快,成功还是失败都默认成功,预扣返回失败,少了预扣。由于客户操作不当,刷卡过快,导致的损失,不予解决了。预扣和返款时不能判断写卡成功与否,默认都是成功,远离刷卡区时,会出现写卡成功,返回失败。

可以建立一个模型,一个刷卡流程:从寻卡,防冲突,校对密码,读取数据,写入数据,时间为T;进入刷卡区到远离刷卡区这段时间要大于一个完整的刷卡流程。

单片机端使用2套密码:默认密码以及根据uid计算出来的密码,

上位机,

指令说明
AA 00 0F 42 40 00 EA 60 00 00 00 00 00 00 00 A0单片机->上位机,正常卡读卡数据
AA 00 0F 42 40 00 EA 60 00 00 00 00 00 00 00 A3单片机->上位机,卡区间显示
  

BB 00 0F 42 40 00 EA 60 00 00 00 00 00 00 00 B0

BB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B0

上位机->单片机,开始初始化

停止初始化

BB 00 0F 42 40 00 EA 60 00 00 00 00 00 00 00 B1上位机->单片机,区域码,充值等
BB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B2上位机->单片机,恢复出厂设置,写白卡
BB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B3上位机->单片机,卡区间设置 1-4起始;5-8截止
BB 00 00 00 00 00 00 00 00 00 00 00 00 00 00 B4上位机->单片机,密码设置 1-6 十六进制
  
  
  
  

 协议说明

数据块12345
定义帧头数据长度指令数据指令和数据的CRC校验
数据长度112N2
说明用户自定义数据长度包括指令,数据和校验   

 

 

起始标志

数据长度

数据类型

数据内容

校验码

0x5a

6+4

0x0101

设备号

CRC16

1字节

2字节

2字节

4字节

2字节

 

起始标志

数据长度

数据类型

数据内容

校验码

0x5a

6+4

0x0201

CRC16

1字节

2字节

2字节

0字节

2字节

起始标志

数据长度

数据类型

数据内容

校验码

0x5a

6+4

0x0101

登录信息

CRC16

1字节

2字节

2字节

4字节

2字节

相对地址

字段名称

说明

0

设备号【0】

设备号为8位数字,占 4字节

如设备号:12345678

则16进制为0x00BC614E

1

设备号【1】

2

设备号【2】

3

设备号【3】

4~23

SIM卡编号

剩余字节为20位SIM卡编码,ASCII编码字符串

24

设备区域码【0】

类型uint16

25

设备区域码【1】

26

离线指令数【0】

设备当前离线未上传的控制指令数

27

离线指令数【1】

28

保温灯开启温度

类型uint8,摄氏温度

29

保温灯关闭温度

类型uint8,摄氏温度

30~31

保留

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值