Не удается аутентифицировать сектор в карте MIFARE с правильным ключом в Android - PullRequest
1 голос
/ 20 сентября 2019

У меня есть mifare classic 1K card и пользовательский ключ.Но не могу читать / писать, используя его.Нужна помощь, чтобы найти мою ошибку.

Я определил ключ, который используется для чтения / записи карты mifare с использованием NXP Taginfo и Mifare Classic Tool.Он показывает биты доступа в виде FF078000, а ключ B - 222222222222. Теперь я использую ключ B для считывания данных с классической карты 1K mifare.Ниже приведен код.

Выход инструмента NXP Taginfo: здесь .

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.что здесь не так?

Любая помощь очень ценится.

Edit-1:

После подробного прочтения я решил, что, возможно, неправильно интерпретировал условия доступа.Я думаю, что мне может потребоваться пройти аутентификацию с ключом А. Но в соответствии с условиями доступа ключ А не читается.Правильно ли я здесь?

Edit-2

Почему тэг nxp editinfo / Mifare Classic Tool могут считывать данные с ключа как 222222222222, но я не могу?

1 Ответ

0 голосов
/ 23 сентября 2019

Я понял, что проблема была с ключом.Я должен использовать 222222222222 в качестве ключа, а не в шестнадцатеричной форме.так что изменение ключа в строке ниже решило проблему.

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