非接触式IC卡编程问题 设备是明华的RF35LT+M1卡,做一个应用。为什么密码核对老是通不过? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 机器是谁的呢?应该有dll调用的吧,看看API的说明吧。密码不对很可能是你读的块不对。 明华的RF35LT+M1卡楼主一机一卡多少钱呀? 找了一些资料,贴贴,以后看看二、 存储结构 1、 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示: 块0 数据块 0 扇区0 块1 数据块 1 块2 数据块 2 块3 密码A 存取控制 密码B 控制块 3 块0 数据块 4 扇区1 块1 数据块 5 块2 数据块 6 块3 密码A 存取控制 密码B 控制块 7 ∶ ∶ ∶ 0 数据块 60 扇区15 1 数据块 61 2 数据块 62 3 密码A 存取控制 密码B 控制块 63 2、 第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。 3、 每个扇区的块0、块1、块2为数据块,可用于存贮数据。 数据块可作两种应用: ★ 用作一般的数据保存,可以进行读、写操作。 ★ 用作数据值,可以进行初始化值、加值、减值、读值操作。 4、 每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下: 密码A(6字节) 存取控制(4字节) 密码B(6字节) 5、 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下: 块0: C10 C20 C30 块1: C11 C21 C31 块2: C12 C22 C32 块3: C13 C23 C33 三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如 进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制 位在存取控制字节中的位置,以块0为例: 对块0的控制: bit 7 6 5 4 3 2 1 0 字节6 C20_b C10_b 字节7 C10 C30_b 字节8 C30 C20 字节9 ( 注: C10_b表示C10取反 ) 存取控制(4字节,其中字节9为备用字节)结构如下所示: bit 7 6 5 4 3 2 1 0 字节6 C23_b C22_b C21_b C20_b C13_b C12_b C11_b C10_b 字节7 C13 C12 C11 C10 C33_b C32_b C31_b C30_b 字节8 C33 C32 C31 C30 C23 C22 C21 C20 字节9 ( 注: _b表示取反 ) 6、数据块(块0、块1、块2)的存取控制如下: 控制位(X=0.1.2) 访 问 条 件 (对数据块 0、1、2) C1X C2X C3X Read Write Increment Decrement, transfer,Restore 0 0 0 KeyA|B KeyA|B KeyA|B KeyA|B 0 1 0 KeyA|B Never Never Never 1 0 0 KeyA|B KeyB Never Never 1 1 0 KeyA|B KeyB KeyB KeyA|B 0 0 1 KeyA|B Never Never KeyA|B 0 1 1 KeyB KeyB Never Never 1 0 1 KeyB Never Never Never 1 1 1 Never Never Never Never (KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现) 例如:当块0的存取控制位C10 C20 C30= 1 0 0时,验证密码A或密码B正确后可读; 验证密码B正确后可写;不能进行加值、减值操作。 7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下: 密码A 存取控制 密码B C13 C23 C33 Read Write Read Write Read Write 0 0 0 Never KeyA|B KeyA|B Never KeyA|B KeyA|B 0 1 0 Never Never KeyA|B Never KeyA|B Never 1 0 0 Never KeyB KeyA|B Never Never KeyB 1 1 0 Never Never KeyA|B Never Never Never 0 0 1 Never KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B 0 1 1 Never KeyB KeyA|B KeyB Never KeyB 1 0 1 Never Never KeyA|B KeyB Never Never 1 1 1 Never Never KeyA|B Never Never Never 例如:当块3的存取控制位C13 C23 C33= 0 0 1时,表示: 密码A:不可读,验证KEYA或KEYB正确后,可写(更改)。 存取控制:验证KEYA或KEYB正确后,可读、可写。 密码B:验证KEYA或KEYB正确后,可读、可写。 新卡片中的控制字为:“FF 07 80 69”,其定义中说明密码A可用,密码B不可用,新卡中所有密码A都为6个字节的“FF”; 推荐的控制字 方案一:7F 07 88 69 此控制字说明:数据块:用密码A或B都可以读写; 控制块:密码A:由密码B来写,不可读; 密码B:由密码B来写,不可读; 控制字:用密码A或B都可读,由密码B写; 方案二:08 77 8F 69 此控制字说明:数据块:用密码A读,由密码B读写; 控制块:密码A:由密码B来写,不可读; 密码B:由密码B来写,不可读; 控制字:用密码A或B都可读,由密码B写; 三、 卡片 卡片的电气部分只由一个天线和ASIC组成。 天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。 ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个 8K位EEPROM组成。 四、对数据块的操作 读 (Read):读一个块; 写 (Write):写一个块; 加(Increment):对数值块进行加值; 减(Decrement):对数值块进行减值; 存储(Restore):将块中的内容存到数据寄存器中; 传输(Transfer):将数据寄存器中的内容写入块中; 中止(Halt):将卡置于暂停工作状态; 加载的密码知道呀,就是“FFFFFFFFFFFF”,加载好密码怎么修改这个密码呢?我调用厂商提供的函数老是报错参数不对,不会用呀,哪位大哥给一段修改密码的程序看看呢 近期正在咨询此问题。哪位大侠有pb实例啊?跪求 了:[email protected] 一般自定义的密码<65535 是怎么添充FFFFFFFFFFFFF的 菜鸟的一个小问题 ADOQuery查询出的数据集用TGrid的单元合并问题(FlexCell插件) 周末了,散点分,祝这里更红火热闹 Visibroker 4.5 调试问题 还是论坛关闭前的问题,400分求两本书!!! 大家好,请问大家在用DELPHI编程时候,编辑器颜色一般选哪个好! Delphi6带的installshield不支持中文?咋办? 控件中类似“文件选择”属性的功能如何实现? 如何从剪贴板获取复制的Outlook邮件/附件,保存为文件? 谁有支持delphi xe 的chlib的控件? 面视试题收集!!!!!!!
楼主一机一卡多少钱呀?
二、 存储结构
1、 M1卡分为16个扇区,每个扇区由4块(块0、块1、块2、块3)组成,(我们也将16个扇区的64个块按绝对地址编号为0~63,存贮结构如下图所示:
块0 数据块 0
扇区0 块1 数据块 1
块2 数据块 2
块3 密码A 存取控制 密码B 控制块 3
块0 数据块 4
扇区1 块1 数据块 5
块2 数据块 6
块3 密码A 存取控制 密码B 控制块 7
∶ ∶ ∶
0 数据块 60
扇区15 1 数据块 61
2 数据块 62
3 密码A 存取控制 密码B 控制块 63 2、 第0扇区的块0(即绝对地址0块),它用于存放厂商代码,已经固化,不可更改。
3、 每个扇区的块0、块1、块2为数据块,可用于存贮数据。
数据块可作两种应用:
★ 用作一般的数据保存,可以进行读、写操作。
★ 用作数据值,可以进行初始化值、加值、减值、读值操作。
4、 每个扇区的块3为控制块,包括了密码A、存取控制、密码B。具体结构如下:
密码A(6字节) 存取控制(4字节) 密码B(6字节) 5、 每个扇区的密码和存取控制都是独立的,可以根据实际需要设定各自的密码及存取控制。存取控制为4个字节,共32位,扇区中的每个块(包括数据块和控制块)的存取条件是由密码和存取控制共同决定的,在存取控制中每个块都有相应的三个控制位,定义如下:
块0: C10 C20 C30
块1: C11 C21 C31
块2: C12 C22 C32
块3: C13 C23 C33
三个控制位以正和反两种形式存在于存取控制字节中,决定了该块的访问权限(如
进行减值操作必须验证KEY A,进行加值操作必须验证KEY B,等等)。三个控制
位在存取控制字节中的位置,以块0为例: 对块0的控制:
bit 7 6 5 4 3 2 1 0
字节6 C20_b C10_b
字节7 C10 C30_b
字节8 C30 C20
字节9
( 注: C10_b表示C10取反 ) 存取控制(4字节,其中字节9为备用字节)结构如下所示:
bit 7 6 5 4 3 2 1 0
字节6 C23_b C22_b C21_b C20_b C13_b C12_b C11_b C10_b
字节7 C13 C12 C11 C10 C33_b C32_b C31_b C30_b
字节8 C33 C32 C31 C30 C23 C22 C21 C20
字节9
( 注: _b表示取反 ) 6、数据块(块0、块1、块2)的存取控制如下: 控制位(X=0.1.2) 访 问 条 件 (对数据块 0、1、2)
C1X C2X C3X Read Write Increment Decrement, transfer,Restore
0 0 0 KeyA|B KeyA|B KeyA|B KeyA|B
0 1 0 KeyA|B Never Never Never
1 0 0 KeyA|B KeyB Never Never
1 1 0 KeyA|B KeyB KeyB KeyA|B
0 0 1 KeyA|B Never Never KeyA|B
0 1 1 KeyB KeyB Never Never
1 0 1 KeyB Never Never Never
1 1 1 Never Never Never Never
(KeyA|B 表示密码A或密码B,Never表示任何条件下不能实现)
例如:当块0的存取控制位C10 C20 C30= 1 0 0时,验证密码A或密码B正确后可读;
验证密码B正确后可写;不能进行加值、减值操作。 7、控制块块3的存取控制与数据块(块0、1、2)不同,它的存取控制如下: 密码A 存取控制 密码B
C13 C23 C33 Read Write Read Write Read Write
0 0 0 Never KeyA|B KeyA|B Never KeyA|B KeyA|B
0 1 0 Never Never KeyA|B Never KeyA|B Never
1 0 0 Never KeyB KeyA|B Never Never KeyB
1 1 0 Never Never KeyA|B Never Never Never
0 0 1 Never KeyA|B KeyA|B KeyA|B KeyA|B KeyA|B
0 1 1 Never KeyB KeyA|B KeyB Never KeyB
1 0 1 Never Never KeyA|B KeyB Never Never
1 1 1 Never Never KeyA|B Never Never Never
例如:当块3的存取控制位C13 C23 C33= 0 0 1时,表示:
密码A:不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读、可写。
密码B:验证KEYA或KEYB正确后,可读、可写。 新卡片中的控制字为:“FF 07 80 69”,其定义中说明密码A可用,密码B不可用,新卡中所有密码A都为6个字节的“FF”; 推荐的控制字
方案一:7F 07 88 69
此控制字说明:数据块:用密码A或B都可以读写;
控制块:密码A:由密码B来写,不可读;
密码B:由密码B来写,不可读;
控制字:用密码A或B都可读,由密码B写;
方案二:08 77 8F 69
此控制字说明:数据块:用密码A读,由密码B读写;
控制块:密码A:由密码B来写,不可读;
密码B:由密码B来写,不可读;
控制字:用密码A或B都可读,由密码B写; 三、 卡片
卡片的电气部分只由一个天线和ASIC组成。
天线:卡片的天线是只有几组绕线的线圈,很适于封装到IS0卡片中。
ASIC:卡片的ASIC由一个高速(106KB波特率)的RF接口,一个控制单元和一个
8K位EEPROM组成。 四、对数据块的操作
读 (Read):读一个块;
写 (Write):写一个块;
加(Increment):对数值块进行加值;
减(Decrement):对数值块进行减值;
存储(Restore):将块中的内容存到数据寄存器中;
传输(Transfer):将数据寄存器中的内容写入块中;
中止(Halt):将卡置于暂停工作状态;