Команда Mifare Classic 1k APDU для получения UID тега

Как следует из названия; есть ли команда APDU для получения UID тега? Я использую Java с устройством чтения карт ACR122-u и пакетом javax.smartcardio.*, и я хочу получить UID из метки на сканере. Библиотека smartcardio может отправлять CommandAPDU, но мне нужно выяснить, какой APDU отправлять. Google был не очень дружелюбен ко мне в этом вопросе, предоставив мне тысячи бесполезных таблиц данных...

Любая помощь будет здорово :)


person Harold Holsappel    schedule 30.10.2012    source источник
comment
Возможно, это поможет вам! rado уже спрашивал что-то подобное, и в его вопросе был ответ на этот вопрос. Я надеюсь, что это может помочь вам.   -  person Unknown222    schedule 31.10.2012


Ответы (2)


Лучше поздно, чем никогда, но на самом деле существует APDU для ПРОСТО получения UID: (байт) 0xFF, (байт) 0xCA, (байт) 0x00, (байт) 0x00, (байт) 0x00

FF CA 00 00 00

В Java: byte[] getuid = new byte[] { (byte) 0xFF, (byte) 0xCA, (byte) 0x00, (byte) 0x00, (byte) 0x00 };

Если вы отправите этот APDU, ответные данные будут просто UID карты :) (Намного проще, чем иметь больше информации и устанавливать смещение, чтобы получить только ту информацию, которая вам нужна...)

person alvaroga91    schedule 28.10.2013
comment
Я считаю, что вам нужно улучшить свой вопрос, добавив всю структуру, позволяющую отправить эту команду, потому что ее легче увидеть здесь, чем щелкнуть ссылку. - person Claudio Santos; 28.10.2013
comment
У него есть много других сообщений, объясняющих, как отправлять и получать APDU на карты, с их исходными кодами. Я просто говорю ему APDU, который он должен отправить, чтобы получить конкретно UID. - person alvaroga91; 30.10.2013

Команда APDU для чтения UID:

byte[] baReadUID = new byte[5];

    baReadUID = new byte[] { (byte) 0xFF, (byte) 0xCA, (byte) 0x00,
            (byte) 0x00, (byte) 0x00 };

Весь полный код здесь....

person Md. Sajedul Karim    schedule 11.01.2015