Mifare Classic 1K的流程是
- 轮询标签
- 验证这些标签
- 如果身份验证成功,则进行读/写。
我已经完成了这些过程,并且还从特定扇区读取和写入数据。
命令为轮询标签 is
new byte[] { (byte) 0xFF, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x04, (byte) 0xD4, (byte) 0x4A,
(byte) 0x01, (byte) 0x00 }
认证命令 is
new byte[] { (byte) 0xFF, (byte) 0x86, (byte) 0x00,
(byte) 0x00, (byte) 0x05, (byte) 0x01,(byte) 0x00, (byte) 0x04,
(byte) 0x60,(byte) 0x00 };
这里“(byte)0x01”是扇区1
And 写入扇区 1、块 5 是
new byte[] { (byte) 0xFF, (byte) 0x00, (byte) 0x00,(byte) 0x00, (byte) 0x15, (byte) 0xD4,
(byte) 0x40,(byte) 0x01, (byte) 0xA0, (byte) 0x05,(byte) 0x01, (byte) 0x02,
(byte) 0x03,(byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07,(byte) 0x08,
(byte) 0x09,(byte) 0x0A,(byte) 0x0B, (byte) 0x0C, (byte) 0x0D,(byte) 0x0E,
(byte) 0x0F, (byte) 0x10};
Here
(byte) 0x01, (byte) 0x02, (byte) 0x03,(byte) 0x04, (byte) 0x05, (byte) 0x06, (byte) 0x07,(byte) 0x08,(byte) 0x09,(byte) 0x0A,(byte) 0x0B, (byte) 0x0C, (byte) 0x0D,(byte) 0x0E,(byte) 0x0F,(byte) 0x10
是写入扇区 1 的块 5 的数据。
从扇区 1 和块 5 读取命令是
new byte[] { (byte) 0xFF, (byte) 0x00, (byte) 0x00,
(byte) 0x00, (byte) 0x05, (byte) 0xD4, (byte) 0x40,
(byte) 0x01, (byte) 0x30, (byte) 0x05 };
我的相关完整代码在这里...... https://stackoverflow.com/a/26052363/3073945
我的问题是如何“锁定/只读”特定扇区的块?