|
上一篇文章介绍了 【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对数据块可写...
(个人理解,可能有所偏差,只做参考。)
|