IronLogic СКУД

Адаптеры & Конвертеры => Z-2 Base => Тема начата: operasdk от 10 Октября 2018, 16:07

Название: Проблемы с компонентой ZR1C
Отправлено: operasdk от 10 Октября 2018, 16:07
Здравствуйте. Приобрел у вас RFID считыватель Z-2 USB. Скачал установил последние драйвера с офф. сайта версии 2.12.26 (от 24.04.2017), также скачал последнюю версию компоненты для 1С версии 1.5.2 (от 24.08.2018) .

Возникшие проблемы:

1)При попытке чтение данных с карт Mifare UL компонента возвращает не полный список байтов, пробовал устанавливать разные значения переменных "c" и "b" - безрезультатно. При чтении данных этого тега через nfc телефона - я получаю полный список байтов. Тип тега 100% соответствует Mifare UL. Пробовал много разных тегов.

//   Компонента = ZR1C.ПолучитьИнтерфейс();
//   Компонента.ЗвукВключен = Ложь;
//   Компонента.Порт = DevId;         
//   Компонента.Подключить(DevId);
//   Отладка = "";
//   c = 0;
//   blob = ""; 
//   b = 16;
//   Компонента.ReadMifareUL(DevId, c, blob, b);

2) При попытке чтения карт Mifare Classic 1K с помощью функции GetLastError() получаю ошибку авторизации ключа. Это происходит потому, что в вашей компоненте переменной "Явный ключ авторизации" присваивается значение 0xFFFFFFFFFFFF, но этот ключ не подходит, так как мои метки используют технологию хранения данных NDEF, где для первого сектора используется ключ 0xA0A1A2A3A4A5, а для последующих секторов ключ 0xD3F7D3F7D3F7. Как мне передать эти ключи в Вашу функцию, если 1С не предоставляет возможности хранить числа в шестнадцатеричной системе счисления?
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 10 Октября 2018, 20:40
Здравствуйте
1) Проверил в эмуляторе Z-2 USB с Mifare Ultralight
Данные считываются все, делал так:

Перем blob;
blob = "";
Компонента.ReadMifareUL(DevId, 0, blob, 16);
Сообщить(ЗначениеВСтрокуВнутр(blob));

В окно "Служебные сообщения" 1с выводит это:
{"#",87126200-3e98-44e0-b931-ccb1d7edc497,
{1,
{#base64:q5B4AFY0EgAAAAAAAAAAABI0VngaGxwdKissLTo7PD1KS0xNWltcXWprbG16e3x9
iouMjZqbnJ2qq6yturu8vQ==}
}
}

если декодировать base64 https://cryptii.com/pipes/base64-to-hex (https://cryptii.com/pipes/base64-to-hex)
получаются 64 байта с корректными значениями.
Если тип blob неудобен, то в каком виде лучше передавать?

2) Спасибо, действительно 64-битного целого типа нет в 1с, заменил на строку. Временное обновление здесь ZR1C v1.5.3 https://yadi.sk/d/vxB6L4I13P5JXp (https://yadi.sk/d/vxB6L4I13P5JXp)
Прошивка Z-2 USB не поддерживает функции чтения/записи на Mifare Classic, их поддерживает Z-2 USB MF.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 11 Октября 2018, 12:44
Здравствуйте. Извините, у меня Z-2 USB MF, я опечатался.

1) Спасибо, просмотрел все существующие типы Mifare UL, оказалось, что их несколько и они отличаются количеством страниц (Например у меня есть Mifare UL на 48 страницы (180 байтов)). В Вашей компоненте стоит ограничение на 16 страниц (64 байта) чтения и записи. Как мне прочитать обычные Mifare UL?

2) Никак не получается считать данные Mifare Classic 1K, получаю ошибку авторизации ключа. Пытаюсь целенаправленно прочитать 4 сектор, чтобы протестировать работу считывателя. Делаю так:
   //Компонента = ZR1C.ПолучитьИнтерфейс();
   //Компонента.ЗвукВключен = Ложь;
   //Компонента.Порт = DevId;         
   //Компонента.Подключить(DevId);
   //Отладка = "";
   //НомерПервогоСектора = 4;
   //НомерПервогоБлока = 0;
   //СчитанныеДанные = "";
   //КоличествоБлоков = 4;
   //АвторизоватьсяПоКлючуБ = Ложь;
   //ПропуститьБлокиПроцепы = Ложь;
   //Компонента.ReadMifareC("Com3", НомерПервогоСектора, НомерПервогоБлока, СчитанныеДанные, КоличествоБлоков);

      Прилагаю скриншот структуры памяти метки, которую пытаюсь прочитать. Там видно, что для 4 сектора используется 0xFFFFFFFFFFFF ключ авторизации (Который по умолчанию подставляется в Вашу функцию чтения)

https://ibb.co/f0J2yp
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 11 Октября 2018, 14:52
1)... Как мне прочитать обычные Mifare UL?
Изменил проверяемые границы с 16 до 255 (обновление https://yadi.sk/d/vxB6L4I13P5JXp (https://yadi.sk/d/vxB6L4I13P5JXp)), но возможно понадобиться дорабатывать прошивку считывателя (у меня сейчас нет таких карт, проверить не могу). Напишите support@ironlogic.ru, чтобы сделали поддержку новых карт Mifare Ultralight (48 страниц).

2) ... Там видно, что для 4 сектора используется 0xFFFFFFFFFFFF ключ авторизации (Который по умолчанию подставляется в Вашу функцию чтения) https://ibb.co/f0J2yp
На скриншоте видно только значение ключа Б, а значение ключа A не видно (key unavailable). Значение ключа, по которому авторизуется сектор, прочитать из сектора нельзя.
Проверил на реальном Z-2 USB MF + Mifare Classic 1K, данные считываются:
Перем blob;
blob = "";
Компонента.ReadMifareC(DevId, 0, 0, blob, 4, 0, "0xFFFFFFFFFFFF");
Сообщить(ЗначениеВСтрокуВнутр(blob));

{"#",87126200-3e98-44e0-b931-ccb1d7edc497,
{1,
{#base64:RimTiHSIBABGjjRVVRA0A961nFMBbJLF1bxeoS8oNskKSYR6i1g2VJWA7XpVI9aO
AAAAAAAA/weAaf///////w==}
}
}
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 11 Октября 2018, 17:34
1) Хорошо, спасибо большое.

2) Пробовал разные карты mf 1k, в которых виден ключ A и не виден ключ B и наоборот. Пробовал разные ключи авторизации и менять местами ключ A и B. Ничего не помогает, каждый раз ошибка авторизации. Даже написал программку, которая подставляла разные ключи из списка к разным секторам, к разным ключам A и B, пока не сможет прочитать какой-то сектор без ошибок. Но ничего также не получилось.

Проблема может быть в самом считывателе? Подскажите, пожалуйста, куда копать, я уже все попробовал.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 11 Октября 2018, 19:12
Попробовал карты в которых не испольузется технология хранения данных ndef - их он читает без проблем (там стоит ключ 0xFFFFFFFFFFFF) и видны оба ключа A и B. Но почему карты с технологией NDEF читаться не хотят? Через Демо-программу sdk guard также не могу авторизоваться на ndef метках.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 11 Октября 2018, 19:13
Метки не бракованные т.к. nfc телефона их читает и пишет.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 11 Октября 2018, 20:27
Попробовал карты в которых не испольузется технология хранения данных ndef - их он читает без проблем (там стоит ключ 0xFFFFFFFFFFFF) и видны оба ключа A и B. Но почему карты с технологией NDEF читаться не хотят? Через Демо-программу sdk guard также не могу авторизоваться на ndef метках.
ZR1C и Z-2 USB MF должны гарантированно работать только с картами, купленными у Ironlogic. Если карты не наши, то можете написать/позвонить https://ironlogic.ru/il_new.nsf/htm/ru_contacts (https://ironlogic.ru/il_new.nsf/htm/ru_contacts) попросить сделать поддержку этих карт (наверное, попросят прислать 1 карту для теста).
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 12 Октября 2018, 11:08
Я использую Ваши же карты, тот же тип, все точно такое же. Авторизация доступна ровно до того момента, пока я не запишу что-то на карту с любого телефона с любой программы. Потому что после записи с любого устройства ключи авторизации меняются на NDEF'cкие. И когда я пытаюсь по этим ключам авторизоваться - выдает ошибку авторизации. Попробуйте взять карту, на которой Вы выше успешно авторизовались по ключу 0xFFFFFFFFFFFF, и записать на нее с любого andoid-устройства ссылку, контактные данные или просто текст. Потом попробуйте авторизоваться на этой карте (Она не блокируется после записи со смартфона, она доступна для записи и любой смартфон может ее читать и писать). Если у Вас получится авторизоваться - значит я что-то делаю не так.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 12 Октября 2018, 12:19
...Попробуйте взять карту, на которой Вы выше успешно авторизовались по ключу 0xFFFFFFFFFFFF, и записать на нее с любого andoid-устройства ссылку, контактные данные или просто текст.
У меня нет таких устройств, телефон не поддерживает NFC.

Пробовал установить в карту другой ключ A="0xAB9078563412" и конфигурацию как на скриншоте https://ibb.co/f0J2yp (https://ibb.co/f0J2yp), успешно авторизуется через ReadMifareC. Пробовал авторизоваться по ключу B="0xFFFFFFFFFFFF", обнаружил, что ReadMifareC игнорирует флаг "Ключ B"=true, исправил (обновление https://yadi.sk/d/vxB6L4I13P5JXp (https://yadi.sk/d/vxB6L4I13P5JXp)), теперь успешно авторизуется и читает данные и по ключу B.
На скриншоте виден ключ B="0xFFFFFFFFFFFF", попробуйте установить обновление и авторизоваться ключом B.
Компонента.ReadMifareC(DevId, 0, 0, blob, 4, 0, "0xFFFFFFFFFFFF", true);Если ключом B авторизует, а ключом A - нет, то скорее всего в ReadMifareC передается неправильный ключ A.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 12 Октября 2018, 13:34
https://ibb.co/jhZAop
https://ibb.co/fM6C19

И все же по-моему компонента не особо хочет работать. На первом скрине я авторизуюсь на карте через Вашу демо программу, в первом секторе, по ключу 0xA0A1A2A3A4A5, авторизация прошла успешно. На втором скрине я пытаюсь авторизоваться на той же карте, в том же секторе, по такому же ключу, но пишет ошибку авторизации.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 12 Октября 2018, 13:43
На первом скрине я авторизуюсь на карте через Вашу демо программу, в первом секторе, по ключу 0xA0A1A2A3A4A5, авторизация прошла успешно.
На первом скрине используется ключ A =0xA5A4A3A2A1A0, а не 0xA0A1A2A3A4A5. В Demo байты ключа отображаются слева направо, младший A0. На втором скрине идёт авторизация по ключу B.
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 12 Октября 2018, 17:13
Спасибо, действительно получилось.


Если тип blob неудобен, то в каком виде лучше передавать?


А Вы можете сделать NDEF формат чтения и записи данных на метку?
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 12 Октября 2018, 20:13
А Вы можете сделать NDEF формат чтения и записи данных на метку?
Делать ли такие доработки решает мой начальник, можете попросить https://ironlogic.ru/il_new.nsf/htm/ru_contacts (https://ironlogic.ru/il_new.nsf/htm/ru_contacts)
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 12 Октября 2018, 23:24
А можно имя Вашего начальника?
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 13 Октября 2018, 05:36
А можно имя Вашего начальника?
Журавский Александр Николаевич
Название: Re: Проблемы с компонентой ZR1C
Отправлено: operasdk от 16 Октября 2018, 14:45
Не подскажите Ваше имя?
Название: Re: Проблемы с компонентой ZR1C
Отправлено: gsa от 16 Октября 2018, 14:53
Не подскажите Ваше имя?
Гончаров Сергей Александрович, разработчик ZR1C