M1卡片相关(读卡,写卡,加密算法)
M1卡信息
- 一张M1卡的存储量为1KB( 16扇区 * 4块 * 16字节 = 1024字节 = 1KB);
- 一张卡有16个扇区,每个扇区有4个块,每个块有16个字节的存储量。
- 1字节 = 8个二进制 = 2个16进制,
所以一个块的存储量为:16个字节 = 128个二进制 = 32个16进制。 - 第0扇区的块0为厂商代码,已经固化。
每个扇区的块3为控制块,用来存放密码和控制权限 ,不能用来存储数据。
每个扇区的块0,块1,块2可以用来存储数据(扇区0的块0除外)。 - 每个扇区都有独立的密码和存取权限(存储在块3)。
读写卡流程
- 上电:使用卡片前需要上电,上电成功后可获取到卡的序列号,卡的类型等相关信息。
- 认证:认证需要:
A. 选择KeyA或者KeyB;
B. 认证的块;
C. SNR序列号:即Byte数组类型的卡序列号(上电后即可获取);
D. KeyA或者KeyB的值(默认12个F); - 读写块。
读写卡相关
理论部分
在认证过密码之后,可以对每个扇区的块0,块1,块2进行数据存储(扇区0的块0除外)。每个块能存储32个16进制的字符。
块3用来存储该扇区的密码和存储权限。
块3的前6个字节为KeyA,后6个字节为KeyB。中间的4个字节为存储控制。
存取控制的4个字节:
数据块(块0,块1,块2)的存取控制如下:
(计算出C10,C20,C30即可在下表中找出块0对应的权限)
控制块(块3)的存取控制如下:
(计算出C13,C23,C33即可在下表中找出块0对应的权限)
实践部分
- 如果一个扇区的块3的存储控制字节为: 08 77 8F 69
- 转为二进制即
6:0 0 0 0 1 0 0 0
7:0 1 1 1 0 1 1 1
8:1 0 0 0 1 1 1 1
字节9为备用字节,可忽略。 - 参照理论部分第4条,字节6全部取反, 字节7的低4位取反,得到:
C2Y:1111 C1Y:0111
C1Y:0111 C3Y:1000
C3Y:1000 C2Y:1111
对应块:3210 对应块:3210 - 高4位的各块值=低4位的各块值时,其值可用。高4位值≠低4位值时,其值不可用!
- C10 C20 C30 = C1Y C2Y C3Y = 1 1 0
所以块0的权限为:验证KeyA或者KeyB可读,可减值,可初始化,验证KeyB后可写,可加值。
C13 C23 C33 = C1Y C2Y C3Y = 0 1 1
所以块3的权限为:验证KeyA或者KeyB可读,验证KeyB后可写
所以扇区KeyA的权限为:KeyA 不可读,验证KeyB后可写
所以扇区KeyB的权限为:KeyB 不可读,验证KeyB后可写
M1卡片相关(读卡,写卡,加密算法)相关推荐
- [STM32] Stm32f103c8t6+RC522 实现读卡写卡功能(超详细,零基础,小白)
本篇文章内容总结下来就是 读卡 使用默认密码读卡所有扇区所有块的数据 写ID 使用默认密码读取卡一的0扇区的第一块数据并写入到卡二的0扇区的第一块里 密码读 ...
- ic卡写卡 angus_使用Angus更快地构建Web应用程序
ic卡写卡 angus Nick's outstanding utility, Angus, has changed! Click here to read an updated post! 尼克杰出 ...
- STM32F103+RFID-RC522模块 实现简单读卡写卡demo
目录 前言 特别声明: 代码下载: 功能介绍: 接线 STM32 STM32F1开发指南(精英版)-库函数版本_V1.2 STM32中文参考手册 RFID-RC522 RFID射频模块电路原理图 使用 ...
- sd卡 写卡阻塞_Sony a7r4写卡速度测试
测试方法 从按下快门开始计时,直到相机屏幕上缓存清空为止,得到整体写卡时间.然后取卡在电脑上查看文件数和总体大小. 写卡速度=总文件大小/写卡时间 1.存储卡Sony Tough(299M/s) 拷照 ...
- RFID读写器web插件实现读卡写卡
目标: 通过友我科技的服务,实现跨浏览器的高频IC卡(S50含M1卡)的读卡(使用读卡器YW-605HA) 基于RFID读写器云服务的web开发指南: 1.下载客户端的服务,并安装 http://ww ...
- RC522 读卡器和写卡器 读写测试程序----基于cc2530开发板
RC522 写卡器操作步骤:1)寻卡,2)防冲突:3)选卡:4)授权:5)写操作:6)读操作:具体步骤见源码,红色的部分是我增加的代码,其它的都是开发板自带的代码: /**************** ...
- M1卡一卡一密码的自动化实现
每张卡出厂在扇区0,都有UID,读取UID是不要密码的,因此可以根据uid的4个字节进行加密,生成AB密码,密码的生成有多种方式,分区间,取余取整,等等计算.这样破解也只是破解一张卡密码,对代理商造成 ...
- 磁条卡芯片卡读写器|写卡器MCR200的安装与操作说明
1. 将 MCR200 与电脑连接好,并插上电源,读卡器上的红灯长亮. 注:如直接用串口线连接电脑,可跳过第 2 步和第 3 步. 如需用 USB 转接头,需在电脑上安装 USB 驱动,请按下列步骤操 ...
- #信用卡#201芯片磁条复合卡写卡技术成功突破及原理解析
本实用新型专利技术涉及业务支撑技术领域,公开了一种多路SIM卡读写装置,➕@地球号[一期一]@[九寺七武]#[九巴二久]包括:多个卡槽,每个卡槽用于放置一张SIM卡,且每个卡槽中设置有一接口电路:外围 ...
最新文章
- php图文消息带代码详细注释,微信发送图文消息代码整理
- Java_Object类
- webpack打包后的文件夹是空的_vue+webpack 打包文件 404 页面空白的解决方法
- css里面的位置属性,CSS定位属性Position详解
- 你真会用setTimeout吗?
- 笨办法学 Python · 续 练习 29:`diff`和`patch`
- 【报告分享】数据大治理-毕马威阿里研究院.pdf(附下载链接)
- 29.奖金(拓扑排序)
- cad通过钢筋大样生成钢筋明细表插件_如何设计一套建筑电气CAD施工图?看完你就知道!涨知识...
- SQLPlus获取oracle表操作SQL
- XcodeGhost简单查看
- Navicat premium注册机打不开的解决办法
- 安装UWB定位系统设备需要注意什么?
- wps指定路径不存在怎么办_WPS说目录不存在
- linux 效果器软件下载,盘点丨15款免费又好用的音乐制作软件
- 服务器藏宝系列,区如其名,这个服务器里果然遍地都是宝藏
- 前端局部刷新的几种方式
- 线程的两种实现,为什么使用runnable接口的居多
- python提取cad坐标_怎么提取cad中坐标?CAD批量提取坐标点的三种方法
- MATLAB Linear Analysis Tool 的bode图数据获取