У меня есть два типа тегов Mifare Classic. У одного UID 4 байта, а у другого 7 байт. Я пытаюсь прочитать блок обоих. Мне удалось прочитать блок тега с 4-байтовым UID, но не удалось пройти аутентификацию в случае 7-байтового UID. Я использую считыватель ACR122U и считываю с помощью инструмента ACR122U.
Не удается аутентифицировать тег NFC с 7-байтовым UID ACR122U
Ответы (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
ACR122U213
, но все же не может аутентифицировать 7-байтовую UID-карту с инструкциями 82 и 86. Спасибо.
- person Free Consulting; 20.02.2015