根据埃文的回答这一页 https://forums.tessel.io/t/change-auth-code/1091,为了更改扇区的身份验证密钥,我们需要覆盖该扇区的第四个块(最后一个块)中的密钥。
默认密钥始终为“FF FF FF FF FF FF”,这是一个六字节密钥。现在如果我尝试使用更改它write
方法从pi-rc522 库 https://github.com/ondryaso/pi-rc522/blob/master/pirc522/__init__.py,它提出了Index Error
因为每个块必须是 16 个字节,但身份验证密钥只有 6 个字节长。
我哪里出错了?
该设备是 RC522,我在 Raspberry Pi 3 上使用 Raspbian。
您只能在 MIFARE Classic 卡上写入整个块。因此,您需要写入完整的扇区尾部,而不仅仅是密钥 A(前 6 个字节)。
完整的扇区预告片如下所示:
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| KEY A | ACCESS BITS | GP | KEY B |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
如果您希望仅使用密钥 A 来读取/写入扇区的所有块(即不使用密钥 B),您可以使用访问位FF 07 80
。因此,如果您想将键 A 设置为11 22 33 44 55 66
,您可以将此值用于预告片块:
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| KEY A | ACCESS BITS | GP | KEY B |
| 11 22 33 44 55 66 | FF 07 80 | 00 | 00 00 00 00 00 00 |
+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
最后,请小心写入扇区预告片的内容。访问位由冗余机制保护。如果将无效访问位写入尾部块,则整个扇区将被不可逆地阻塞。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)