|
2023-07-22
2023-07-22
2023-02-01
2021-08-20
2021-04-10
2021-04-10
2021-04-10
2021-04-10
2021-04-10
2020-06-09
M1卡片读写资料发表时间:2021-07-14 12:48
所谓的M1芯片,是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列,常用的有S50及S70两种型号。 M1卡的基本信息: 容量为8K位EEPROM 分为16个扇区,每个扇区为4块,每块16个字节,以块为存取单位 每个扇区有独立的一组密码及访问控制 l 每张卡有唯一序列号,为32位 具有防冲突机制,支持多卡操作 无电源,自带天线,内含加密控制逻辑和通讯逻辑电路 数据保存期为10年,可改写10万次,读无限次 工作温度:-20℃~50℃(湿度为90%) l 工作频率:13.56MHZ 通信速率:106 KBPS 读写距离:10 cm以内(与读写器有关) M1卡的存储结构 : 1.M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
2.第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3.每个扇区的块0、块1、块2为数据块,可用于存贮数据。 数据块可作两种应用: 用作一般的数据保存,可以进行读、写操作。 用作数据值,可以进行初始化值、加值、减值、读值操作。
4.每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:
这个是每个扇区 最后一块的存储控制结构,一共4个字节,例如:(FF 07 80 69) 。 这些数字是16进制的数字,然后一个1byte(字节)=8bits,所以他们的结构如下:
我们知道如果要读取一个扇区的每一块的数据都需要通过KeyA或者KeyB的验证,而厂家生产出来的M1卡默认的控制位为 (FF 07 80 69),默认的KeyA和KeyB为(FFFFFFFFFFFF)。但是这样是非常的不安全的,所以我们需要修改原始密码。原始密码的修改是非常的简单的,因为默认的控制位是(FF 07 80 69),对应的每一块的权限表达为: 首先按照16进制,把控制位解析出来: 16进制转换详解——我们先列出转换表 16进制转换表 0000 =00001=10010=200 现在我们就对照上面的表就能知道默认的控制位转换后是个什么数: 字节6——FF : 1 1 1 1 1 1 1 1 字节7——07 : 0 0 0 0 0 1 1 1 字节8——80 : 1 0 0 0 0 0 0 0 字节9——69 :(这个一般不用) 把数据填入到存取控制结构表如下图:
存取控制(4字节,其中字节9为备用字节)结构如下所示: ( 注: _b表示取反 ) 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如: 进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。因为控制字是由部分控制位取反的来的,由上表C33_b就可知道,所以我们要再取反一次获取原来的控制位,就能得出下面的控制位(_b为取反,比如:C33为1取反后为C33_b为0):
字节6——FF : 0 0 0 0 0 0 0 0 字节7——07 : 0 0 0 0 1 0 0 0 字节8——80 : 1 0 0 0 0 0 0 0 字节9——69 :(这个一般不用)
在存取控制中每个块都有相应的三个控制位,定义如下: 块0: C10 C20 C30 0 0 0 块1: C11 C21 C31 0 0 0 块2: C12 C22 C32 对应上表数据可得—— 0 0 0 块3: C13 C23 C33 0 0 1
块0,1,2控制位权限参照下面权限表可知:
块0控制位为:0 0 0 权限为: 通过A或者B密码认证后可读,可写,可进行加值和减值操作。 块1控制位为:0 0 0 权限为: 通过A或者B密码认证后可读,可写,可进行加值和减值操作。 块2控制位为:0 0 0 权限为: 通过A或者B密码认证后可读,可写,可进行加值和减值操作。
块3和其他的权限参照表是不一样的,块3对应的权限表为下表:
块3控制位为: 0 0 1 权限为:A密码不可读,验证A或者B密码后可改写A密码。验证A或者B密码后,可读可改写存取控制 。 验证A密码或者B密码后,可读可改写B密码。
文章分类:
行业动态
|