Не удается подтвердить подлинность тега 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
    
Другие вопросы по тегам