чтение определенного сектора из классической мифаре - PullRequest
0 голосов
/ 25 февраля 2012

Я хотел бы прочитать сектор 8 из mifare classic, если у меня уже есть ключи.

Из документации здесь на authenticateSectorWithKeyA (int sectorIndex, byte[] key)

Неудачная попытка аутентификации вызывает неявное переподключение к тег, поэтому аутентификация для других секторов будет потеряна.

Звучит так, как будто я должен пройти аутентификацию со всеми секторами? Возможно ли, чтобы я проходил аутентификацию только в секторе 8 и получал данные только из этого сектора?

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Да, сначала выполните аутентификацию с использованием authenticateSectorWithKeyA () (если у вас есть ключ A, в противном случае используйте authenticateSectorWithKeyB () с ключом B). Если возвращается false, аутентификация не удалась (ваш ключ был неверным).

После этого вы можете использовать readBlock () для чтения данных (для удобства вы можете использовать sectorToBlock () для преобразования из индекса сектора в индекс блока)

Не беспокойтесь о неудачных аутентификациях: это не повлияет на работу вашей карты.

1 голос
/ 17 августа 2012

Вы должны установить новое подключение к считывателю, затем выбрать метку SN карты, Войти в сектор, отличный от сектора 0, если программа получит код возврата 0 / успех, то вы можете читать / записывать данные по блокам (16 байт / блок),в противном случае он запрещает операцию R / W, и вам нужно начать заново.

0 голосов
/ 25 февраля 2012

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

...