MifareClassic卡通过Access Bits来控制keyA和keyB的读写权限
2013-03-24 16:03
323 查看
上一篇文章介绍了 【MifareClassic卡自定义keyA和keyB】,使得写入的到卡中的信息只有知道key值的人才能读写,但要使得keyA和keyB拥有不同的权限,以达到权限控制的目的,就需要通过Access Bits 来控制了。通过Access Bits 来控制keyA和keyB的读写权限的详细介绍请看文档:Mifare1卡中文资料。主要内容如下:
按照上表,当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码 B 正确后可读;
验证密码B正确后可写;不能进行加值、减值操作。
当块3的存取控制位C13 C23 C33=1 0 0时,表示:
密码 A:不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读、可写。密码B:验证KEYA或KEYB正确后,可读、可写。
因此,C1x C2x C3x = 100时,根据上面的表格(”注:_b表示取反“那个表),得出:
字节6:11110000,
字节7:11111111
字节8:00000000
字节9:备用字节,随便填充。如:00000000
因此此时的控制位为:
(byte)0xF0, (byte)0xFF, (byte) 0x00,(byte)0x00
此时,KEYA 或 KEYB对数据块可读, KEYB对数据块可写...
(个人理解,可能有所偏差,只做参考。)
按照上表,当块0的存取控制位C10 C20 C30=1 0 0时,验证密码A或密码 B 正确后可读;
验证密码B正确后可写;不能进行加值、减值操作。
当块3的存取控制位C13 C23 C33=1 0 0时,表示:
密码 A:不可读,验证KEYA或KEYB正确后,可写(更改)。
存取控制:验证KEYA或KEYB正确后,可读、可写。密码B:验证KEYA或KEYB正确后,可读、可写。
因此,C1x C2x C3x = 100时,根据上面的表格(”注:_b表示取反“那个表),得出:
字节6:11110000,
字节7:11111111
字节8:00000000
字节9:备用字节,随便填充。如:00000000
因此此时的控制位为:
(byte)0xF0, (byte)0xFF, (byte) 0x00,(byte)0x00
此时,KEYA 或 KEYB对数据块可读, KEYB对数据块可写...
(个人理解,可能有所偏差,只做参考。)
相关文章推荐
- RFID的KeyA/KeyB和区读写控制位
- [WCF权限控制]通过扩展自行实现服务授权[提供源码下载]
- 如何通过excel实现用户权限控制
- struts下通过过滤器进行权限控制
- linux下通过acl配置灵活目录文件权限(可用于ftp,web服务器的用户权限控制)
- 报表系统FineReport通过权限控制数据访问方案
- 通过权限控制菜单栏菜单的显示和隐藏
- 润乾报表v5通过权限控制数据访问方案
- SpringSecurity实战! 详细讲解如何通过SpringSecurity控制用户访问权限。
- 根据 crazycode的建议,修改通过IP控制权限访问网站的部分代码
- mvc通过反射获取action方法(适用于权限控制)
- js:读写二进制变通方法,需要有权限控制adodb.stream,可以配合hta使用
- springMVC 基于注释 通过拦截器来控制后台的权限
- struts2通过拦截器,实现权限控制功能
- 外设权限控制 只读、拒绝、读写
- CodeIgniter通过hook的方式实现简单的权限控制
- android通过权限设置控制数据共享程序
- 通过权限控制在apache下创建3个论坛
- 通过 Zuul 代理控制报表访问权限
- NTFS权限中完全控制与读写修改的区别