无法使用 android 中的正确密钥验证 mifare 卡中的扇区

Cannot authenticate a sector in mifare card with correct key in android

我有一张mifare classic 1K卡和custom Key。但无法 read/write 使用它。需要帮助找出我的错误。

我已经使用 NXP Taginfo 和 Mifare Classic Tool 确定了用于 read/write mifare 卡的密钥。 它显示访问位为 FF078000,密钥 B 为 222222222222 现在我正在使用 Key B 从 mifare classic 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 返回错误。这里有什么问题?

非常感谢任何帮助。

编辑-1:

经过广泛阅读,我认为我可能错误地解释了访问条件。我想我可能需要使用密钥 A 进行身份验证。但根据访问条件,密钥 A 不可读。我说得对吗?

编辑-2

为什么 nxp 标签 editinfo/Mifare Classic Tool 能够读取密钥为 222222222222 的数据,但我不能?

我认为问题出在密钥上。我必须使用 222222222222 作为密钥而不是十六进制形式。所以将密钥更改为以下行解决了问题。

newkey = {(byte)0x22, (byte)0x22,(byte)0x22,(byte)0x22,(byte)0x22,(byte)0x22};