我有一个mifare经典的1K卡和自定义密钥。但是无法使用它进行读取/写入。需要帮助找到我的错误。
我已经确定了使用NXP Taginfo和Mifare Classic Tool读取/写入mifare卡的密钥。 它显示访问位为FF078000,密钥B为222222222222 现在,我使用密钥B从mifare经典1K卡中读取数据。下面是代码。
NXP Taginfo工具的输出为here。
byte[] newkey = {(byte)0x00, (byte)0x33,(byte)0xBD,(byte)0x7A,(byte)0x03,(byte)0x8E};
boolean authB = taskTag.authenticateSectorWithKeyB(6, newkey);
Log.i("New Key"+ new BigInteger(newkey).toString(), "authB : " + authB) ;
但是authB返回false。怎么了?
非常感谢您的帮助。
大量阅读后,我发现我可能错误地理解了访问条件。我认为我可能需要通过密钥A进行身份验证。但是根据访问条件,密钥A是不可读的。我在这里正确吗?
nxp标签editinfo / Mifare Classic Tool为什么能够读取密钥为222222222222的数据,但是我却不能?
答案 0 :(得分:0)
我认为问题出在钥匙上。我必须使用222222222222作为密钥,而不是十六进制形式。因此将密钥更改为以下行即可解决此问题。
newkey = {(byte)0x22, (byte)0x22,(byte)0x22,(byte)0x22,(byte)0x22,(byte)0x22};