Как расшифровать коды ключей Proximity в базе Орион Про Болид

В этом посте я хочу поделиться с вами информацией о том как расшифровать коды ключей Proximity карт в базе Орион Про Болид. Может возникнуть вопрос: “Зачем это нужно, ведь есть же генератор отчетов который предоставляет данную информацию?”. Возможно я странный человек, но я считаю что пользоваться разного рода надстройками над СУБД если имеешь опыт работы с нею это несколько странно. Работать с базой напрямую гораздо интереснее и веселее чем изучать чужие костыли. Коды карточек PROXIMITY в базе хранятся в базе в таблице pMark с столбце CodeP. Зачем-то разработчики ПО Орион Про их зашифровали… Но на наше счастье не очень серьезно. О связях между таблицами в БД Орион Про я уже делал короткую заметку в посте Связи между таблицами в базе данных MS SQL Orion Pro Болид, поэтому сейчас на этом останавливаться не будем. Вообще если кого-то интересует аналитика – пишите в комментах, присылайте дампы базы – будем посмотреть.
У меня есть файл в формате excel – экспорт открытых ключей из базы Орион Про. На его примере мы посмотрим как легко расшифровываются ключи карточек. Вот скрин:

Дамп ключей из БД Орион Про
Дамп ключей из БД Орион Про в формате Excel

Возьмем в работу 3х человек, да простят меня эти люди. Участниками эксперимента назначим номера 10239 Меднов, 10297 Дербенева и 10308 Лапынин.
Теперь напишем простенький запрос к БД:

  1. SELECT 
  2. TabNumber
  3. ,Name
  4. ,FirstName
  5. ,MidName
  6. ,CodeP
  7.  FROM pList INNER JOIN pMark 
  8. ON pList.ID = pMark.Owner
  9. WHERE pList.TabNumber IN ('10239', '10297', '10308')

На скрине виден результат. Ключи, как мы видим спрятаны.

Запрос к БД Орион Про для получения кодов ключей
Запрос к БД Орион Про для получения кодов ключей

Давайте скопируем крокозябры из столбца codeP и вставим в какой-нибудь двоичный редактор. Что получилось – видно на скринах ниже:

Код ключа из базы Орион Про в редакторе WinHex
Код ключа из базы Орион Про в редакторе WinHex

Код ключа из базы Орион Про в редакторе WinHex
Код ключа из базы Орион Про в редакторе WinHex
Таким образом мы выяснили что ключ представляет 12 байтное слово. На самом деле это кодировка ASCII. Теперь давайте для наглядности впишем полученные данные в нашу таблицу. Вот что получается:
Сырой код ключа из БД Орион Про
Сырой код ключа из БД Орион Про

Прелестно… Теперь откинем первый байт и заменим все пары байт FE01 на 00, вот что получилось:

Ну и напоследок: осталось переписать байты задом наперед и ключик наш! Делаем.

Расшифрованный ключ карты Proximity из БД Орион Про
Расшифрованный ключ карты Proximity из БД Орион Про

Вот собственно и все шифрование, далее осталось только написать функцию которая будет делать это на лету и можно писать любые запросы.
Если есть вопросы – задавайте в комментариях. Пожалуйста оценивайте статью.

Оцените пожалуйста статью:

ПечальноТак себеНе плохоХорошоОтличная статья! (Пока оценок нет)
Загрузка...

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *