Не удается подтвердить подлинность тега NFC, имеющего 7-байтовый UID ACR122U
У меня есть два типа меток Mifare Classic. У одного UID 4 байта, а у другого 7 байт. Я пытаюсь прочитать блок обоих. Я успешно прочитал блок тега, имеющий 4-байтовый UID, но не смог пройти аутентификацию в случае 7-байтового UID. Читатель, который я использую, представляет собой ACR122U и читает с помощью ACR122U Tool.
1 ответ
Предполагая, что вы используете более старую версию ACR122U, вы бы использовали команду обмена данными PN532 для отправки команды аутентификации:
FF 00 0000 0F D440 <TAG_ID> <AUTH_TYPE> <BLOCK> <KEY> <UID>
<TAG_ID>
индекс тега на считывателе (обычно 0x01). <AUTH_TYPE>
0x60, если вы хотите аутентифицироваться с ключом A, и 0x61, если вы хотите аутентифицироваться с ключом B. <BLOCK>
блок для аутентификации <KEY>
является 6-байтовым ключом (например, FF FF FF FF FF FF
для ключа по умолчанию). <UID>
это 4-байтовый UID (или последние 4 байта 7-байтового UID).
Так что если вы хотите пройти аутентификацию, используя ключ A A0 A1 A2 A3 A4 A5
для блока 0 по тегу с UID 04 AA BB CC DD EE FF
, вы бы использовали следующую команду:
FF 00 0000 0F D440 01 60 00 A0A1A2A3A4A5 CCDDEEFF
В более новых версиях ридера вы бы вместо этого использовали стандартизированный механизм для бесконтактных карт памяти, определенных PC/SC:
Загрузить ключи аутентификации:
FF 82 0000 06 <KEY>
Аутентифицировать:
FF 86 0000 05 0100 <BLOCK> <AUTH_TYPE> 00