这是我的问题:我的RC522模块通过SPI连接到我的Pi2,并且能够使用MFRC522-python和pi-rc522库读取所有[64块/ 16个扇区]。我还能写和更改除我从ebay购买的中国Mifare 1K卡的块0(包括UID)以外的所有块(63个块),它应该是可写的块0 / UID。
问题是:使用上面提到的可用python库,是否可以完全在中国可写Mifare 1K卡上写入块0。
注意:收到卡后,扇区尾部访问位处于传输配置中(扇区尾部为FF 07 80-> 001,数据块为000),这意味着通常我可以更改数据块(包括块0) )使用KeyA或KeyB,但我不能。我将访问位更改为(数据块为7F 0F 88-> 000),并使用了KeyA / KeyB,它不起作用,并且块0保持不变。我也尝试了用KeyA或KeyB(78 77 88-> 000数据块),结果相同。
同样,设置适当的访问位,我可以读取/写入除块0以外的所有其他块。
谢谢。
最佳答案
UID可写卡有2种类型:
区块0可写卡:您可以随时写入区块0
后门卡
如果写入块0不起作用,则您可能拥有后门卡:
要启用后门,需要将以下序列发送到卡:
(所有十六进制)
RC522>卡:50 00 57 cd(HLTA + CRC)
RC522>卡:40(仅7位)
卡> RC522:A(仅4位)
RC522>卡:43
卡> RC522:A(仅4位)
然后,您无需身份验证即可写入块0。
如果仍然无法使用,则您的卡可能无法更改UID。
要回答您的问题:Python库没有理由拒绝编写块0。
如果您的库可以写入除块0以外的任何块,那是您的卡拒绝写入该块。
尝试写入块0时,卡是否发回NACK或什么都不发?