读书人

MifareClassic卡自定义keyA跟keyB

发布时间: 2013-03-14 10:33:15 作者: rapoo

MifareClassic卡自定义keyA和keyB

请先阅读《读写MifareClassic协议的NFC卡》一文了解MifareClassic卡的相关知识。

根据MifareClassic卡的的相关协议,如果要自定义自己的keyA和keyB,以使自己写入的到卡中的信息只有知道key值的人才能读写,必须往要操作的区中的Block 3即Trailer块写入数据。下图是Block 3的数据示例:

MifareClassic卡自定义keyA跟keyB

如图,我们只需定义要写入到Trailer块及keyA、keyB的数据分别为:

[java] view plaincopy
  1. byte authBlockData[] = { (byte) 0xAA, (byte) 0xAA, (byte) 0xAA,
  2. (byte) 0xAA, (byte) 0xAA, (byte) 0xAA, (byte)0xFF, (byte)0x07, (byte) 0x80,
  3. (byte)0x69, (byte) 0xBB, (byte) 0xBB, (byte) 0xBB, (byte) 0xBB,
  4. (byte) 0xBB, (byte) 0xBB };
  5. byte keyA[] = { (byte) 0xAA, (byte) 0xAA, (byte) 0xAA, (byte) 0xAA,
  6. (byte) 0xAA, (byte) 0xAA };
  7. byte keyB[] = { (byte) 0xBB, (byte) 0xBB, (byte) 0xBB, (byte) 0xBB,
  8. (byte) 0xBB, (byte) 0xBB };
第一次往Block 3中写数据时仍然使用MifareClassic.KEY_DEFAULT,写入完成后则使用新定义的keyA和keyB进入数据的写入和读取了。至此,实现了MifareClassic卡自定义keyA和keyB功能。
相关可执行程序:http://download.csdn.net/detail/viviwen123/5131034。源码只实现了对MifareClassic卡的读写功能,未进行keyA和keyB的修改,读者根据本文稍做修改即可实现此功能。


读书人网 >移动开发

热点推荐