Як розшифрувати qr код, роскод національна система штрихкодирования
Розшифровка qr кодів онлайн
Безкоштовні онлайн-сервіси розшифрують QR-код за пару секунд, якщо виконати нескладну послідовність дій:
1. Вставити в завантажувальний віконце QR-код або посилання коду;
2. Натиснути «Відправити».
Через кілька миттєвостей розшифрований код стане доступний для читання.
Як розшифрувати qr code вручну?
- Числовий (використовуються тільки цифри від 0 до 9);
- Альфачісловой (використовуються цифри від 0 до 9, англійські букви A-Z, спецсимволи пробіл, $% * + - / :);
- бітовий;
- Спосіб Кайндзі, при якому файли упаковуються в 13 біт. Застосовується для кодування китайських і японських ієрогліфів.
Інформація в коді розташована не хаотично, а розбивається на 4 блоки:
- Область детектування (перетворюють модуль) - великі квадрати по кутах коду; всередині кожного квадрата розташований чорний квадрат меншого розміру. У цій області не міститься даних, що представляють інтерес при розшифровці.
- Системна інформація - 4 смуги даних - збоку, праворуч і знизу від блоків детектування; займає 15 біт, з них 5 біт - корисна інформація, 10 біт - коригувальний код, який активується при помилковому прочитанні даних програмою або при пошкодженні основного коду, наприклад, закреслення або затирання. Системні дані дублюються; це допомагає уникнути помилок при зчитуванні коду.
- Про версію коду. Всього версій 40. Чим вище версія, тим більша кількість даних в ній зашифровано, і тим складніше розшифрувати код без застосування технічних засобів. Збільшення кількості даних веде до більш щільному заповненню простору між перетворювати модулями.
- Безпосередньо дані.
Алгоритм розшифровки QR-коду програмою такий:
1. Розпізнавання чорних і білих областей;
2. Декодування формату даних;
3. Визначення версії коду;
4. Використання маски;
5. Витяг даних;
6. Витяг коригувальних кодів;
7. Декодування даних;
При розшифровці QR-коду вручну пункти 1, 3, 6, 8, 9 виключаються, залишається лише 4 пункти:
- Декодування формату даних;
- Використання маски;
- Витяг даних;
- Декодування даних;
Приступаємо до розшифровки.
1. Нас цікавлять 5 біт інформації, зашифрованої в системних даних. Це рядок під верхнім лівим перетворювати модулем. Дані з неї записуємо в двійковій системі, позначаючи порожню область як 0, а заповнену - як 1. Вийде рядок з п'яти цифр, наприклад, 10111.
2. Використовуємо статичну маску для системної інформації. Маска - ще один спосіб захисту даних; являє собою числову послідовність 101010000010010. Оскільки ми використовуємо тільки 5 біт інформації, то скорочуємо маску до перших п'яти цифр: 10101.
3. Застосовуємо логічну операцію «виключає АБО» (xor). Результатом дії буде одиниця при непарному числі складаються бітів, і 0 при парному. У прикладі це виглядає так:
4. В отриманій рядку даних перші 2 цифри показують рівень корекції помилок. В QR-кодах таких рівнів 4; їх відмінності - в обсязі інформації, яка відновлюється при пошкодженні коду:
- L (01) Low (Слабкий) - 7%;
- M (00) Medium (Середній) - 15%;
- Q (11) Quartile (Нормальний) -25%;
- H (10) High (Високий) - 30%.
У розглянутому прикладі середній рівень корекції - M (00), тобто при пошкодженні коду скорегувати можна до 15% помилок.
За рештою трьома цифрам (011) визначається тип маски - один з восьми можливих:
7. Знову застосовуємо маску. Але в цей раз вона буде для кожного типу своя. 8-біттному типу даних відповідає маска 0000. Після проведення обчислень за допомогою оператора XOR отримуємо результат:
0100 - індикатор режиму
0100 - 8-біттний режим
8. Залишилося прочитати дані. Вони записані в уже розглянутої нами області 2-12. Новомосковський змійкою справа наліво і знизу вгору, переводимо в двійковий код рядка з 3-ю по 12-ю (перші 2 рядки відводиться під заголовок даних). На отриманий 20-значний цифровий ряд впливаємо оператором XOR. 8-біттному типу даних відповідає маска
0000 0000 0000 0000 0000.
Режим читання визначаємо по таблиці: