Выселение. Приватизация. Перепланировка. Ипотека. ИСЖ

QR-код – небольшое изображение, содержащее зашифрованную информацию для пользователя. Чаще всего является аналогом ненавязчивой рекламы, которую можно считать, сохранить в телефоне и всегда иметь под рукой. Видите маленькие абстрактные черно-белые квадраты на постерах, упаковках, сайтах или в объявлениях? Именно это и есть QR, пользоваться которым мы научимся ниже.

Код типа «quick response» может считать каждый. Информация, которую он заключает в себе, также различна. Это ссылки, слоганы, адреса и телефоны, названия компаний, географические координаты и прочее. В пользу данного типа шифрования говорит его компактность и «нейтральность», удобство в использовании за счет значительного распространения портативной техники. Практически любой современный смартфон может понять QR-код посредством встроенной или устанавливаемой программы. Самые популярные из них называются QR Droid Code Scanner (для Андроида), Kaywa reader или QuickMark (для операционной среды Symbian OS V9 или Windows Mobile), iMatrix для Mac-техники, BeeTagg для Блэкбэрри, Plam OS и простых телефонов на Java. “Nokia barcode reader” примечателен тем, что поддерживает управление с тачскрина и быстро справляется даже с нечеткими или поврежденными изображениями. Скачать программы для распознавания шифра проще всего на сайте разработчиков или в таких авторитетных онлайн-ресурсах, как “Магазин Windows “, “Google Play” , “App Store” . Это гарантирует безопасность пользователя и бесплатное получение ПО. Итак, выбираем программу, устанавливаем так, как указано на инструкции к ней, запускаем и находим нужный КьюАр-код. Далее наводим камеру на картинку, которая распознается автоматически или после сохранения снимка. Информация тут же обрабатывается избранным приложением и выводится на экран. Ссылки на сайты обычно открываются в браузере.


При желании QR-код можно создать самостоятельно. Для этого даже не потребуется стороннего программного обеспечения, так как некоторые сайты предлагают провести шифрование онлайн. К примеру, поэкспериментировать с кодировкой можно посредством букмарклета на QRCoder.ru. Сервис позволяет зашифровать смс, визитку, послание, ссылку в виде картинки лишь с помощью смартфона и его камеры. Сообщение может содержать до 7089 цифр, 4296 латинских и 1450 кириллических букв, 1817 иероглифов. Размер изображения колеблется от 21х21 до 177х177 пикселей.С другой стороны, самый гигантский КьюАр, занесенный в книгу рекордов Гиннесса, занимает около 3-х гектар и находится на кукурузном поле в Канаде. Современная сфера использования QR настолько широка, что их даже начали печатать на футболках. Весьма удобно отсканировать такой шифр, моментально получив ссылку на страницу в социальных сетях или даже телефон. Создать расширенную версию кода для знакомств поможет QrRussia.RU.


Как мы увидели, в пользовании QR нет ничего сложного. Это модно, удобно, предоставляет широкий простор для творчества и креативного использования современных технологий.

  • Tutorial

Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.

Для тех, кто не в курсе что такое QR код , есть в английской Wikipedia. Также можно почитать тематический блог на Хабре и несколько хороших статей по смежной тематике, которые можно найти поиском .

Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов. Информация была закодирована в online-генераторе QR Coder.ru .

Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий на режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем ввиду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, которые описаны ниже, можно адаптироваться и к этим режимам.

На случай некорректного чтения данных, в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона . Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «перемешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации.

«Перемешанные» данные записываются в особой последовательности на шаблонную картинку, куда добавляется техническая информация для декодирующих устройств. Исходя из описанного алгоритма, можно выделить схему извлечения данных из QR кода:

Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет выполнить при непосредственном чтении кода. Остальные пункты можно опустить ввиду того, что считывание производит человек.

Шаг 0. QR код

Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь:

По ним можно сориентироваться и понять какая версия QR перед вами. Коды высоких версий обычно также нецелесообразно считывать вручную.

Размещение системной информации показано на рисунке:

Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 - это полезная информация, а остальные 10 - это BCH (15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.

Шаг 1. Чтение 5 бит системной информации

Как уже говорилось, интерес представляют только первые 5 бит. Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:

Шаг 2. Маска для системной информации

Кроме уже озвученных схем зашиты системной информации, вдобавок, используется статическая маска, которая применяется к любой системной информации. Она имеет вид: 101010000010010 . Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять - сто один). После применения операции «исключающего или» (xor) получаем информацию.

Возможные уровни коррекции ошибок:

L 01
M 00
Q 11
H 10

Возможные маски:

000 (i + j) mod 2 = 0
001 i mod 2 = 0
010 j mod 3 = 0
011 (i + j) mod 3 = 0
100 ((i div 2) + (j div 3)) mod 2 = 0
101 (i j) mod 2 + (i j) mod 3 = 0
110 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
111 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Шаг 3. Чтение заголовка данных

Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:

Список возможных режимов:

P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

P.P.S. Если ошибся блогом, то подскажите куда - перенесу.

Теги: Добавить метки

Сегодня очень часто для маркировки различной информации используется QR код. Он представляет собой двухмерный штрих-код, состоящий из черных и белых квадратов. Каждый квадрат является 1 (или 0) битом информации. Такой код легко расшифровать с помощью смартфона со специальным приложением. Однако в некоторых случаях прочитать QR код можно и вручную.

В первую очередь, для того чтобы приступать к штурму кода, необходимо разобраться, каким именно образом происходит шифрование. Существуют несколько типов кодирования данных:

  • числовой (цифры 0-9);
  • альфачисловой (цифры 0-9, буквы A-Z, спецсимволы: пробел,$ % * + — / :);
  • битовый;
  • Кандзи (файлы упаковываются в 13 бит);

Как расшифровать QR код?

Вся информация в коде разбивается на блоки. Их можно условно разделить на 4 типа:

  1. область детектирования, то есть преобразовывающий модуль (расположенные по углам кода большие отчетливые квадраты, внутри которых находится еще один черный квадрат). Эта область не несет полезной информации с точки зрения расшифровки данных;
  2. системная информация. Она представляет собой две полосы данных, которые дублируются по 2 раза (итого 4 полосы, расположенных сбоку, справа и снизу от блоков детектирования);
  3. информация о версии кода. От версии кода зависит максимальное количество данных, которое можно зашифровать. Чем выше версия, тем сложнее данные расшифровать вручную. Иногда это просто не целесообразно. С повышением версии, количество блоков в коде будет больше. То есть между преобразовывающими модулями по краям пространство будет заполнено плотнее;
  4. непосредственно данные.

Шаг 1.

Интерес, с точки зрения расшифровки информации, представляет только одна строка системного кода. Она находится сразу под левым верхним преобразовывающим модулем. Тут находится 5 бит информации.

Теперь нужно вспомнить двоичную систему счисления и записать данные в этой строке. Итак, смотрим на строку (строка заканчивается под левым верхним преобразовывающим модулем) и записываем 0 на пустом месте и 1 на заполненном. Нас интересуют только первые 5 бит информации. Таким образом, получаем строку из 5 цифр (например 10111).

Шаг 2.

Теперь применяем маску к системной информации. Маска — это дополнительный способ защиты информации. Она имеет вид: 101010000010010. Поскольку мы работаем только с 5 битами информации, то и маску сокращаем соответственно. Оставляем первые 5 цифр и получаем 10101. Теперь к нашим 5 битам применяем маску с помощью операции исключающего или (XOR).

Например: 10111 XOR 10101 = 00010

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

где i — строка, j—раздел.

Шаг 3.

Переходим к заголовку данных в коде. Заголовок находится в правом нижнем углу. Мысленно выделяем прямоугольник 2×12, который располагается с краю справа и направлен вверх. Запомним его расположение, он нам понадобится при непосредственном чтении данных.

Теперь определяем режим данных. Для этого опять используем двоичную систему. Опускаемся к основанию нашего воображаемого прямоугольника и записываем 0 в белых и 1 в черных клетках, двигаясь змейкой снизу вверх, справа налево. Для заголовка нам достаточно обработать область 4×4. Получаем строку из 4 цифр.

Например: 0100

Список возможных режимов приведен ниже:

Итак, данная в примере строка с цифрами соответствует данным из 8 битов. Независимо от получившегося типа данных, к ним нужно опять применить маску. Маска в данном случае будет для каждого типа своя. Например, для 8-битного типа данных она будет 0000, для численного - 0110. Вычислять маску можно по приведенным выше формулам.

Опять применяем к вычисленным данным маску с помощью оператора XOR.

Например 0100 XOR 0000 = 0100

Шаг 4.

Приступаем к чтению данных. Данные записаны в нашей прямоугольной области 2×12, начиная с 3-й строки (первые 2 строки- заголовок данных). Строки мы читаем снизу вверх. Итак, переводим в двоичный код всю оставшуюся область прямоугольника. Двигаемся змейкой справа налево. Получаем ряд из 20 цифр. Применяем маску с помощью оператора XOR. Для 8-битного типа данных полная маска будет 0000 0000 0000 0000 0000, для численного- 0001 1000 0110 0001 1000. (Вычисляем маску по приведенным выше формулам).

Теперь определяем режим чтения данных по таблице, приведенной ниже:

Это значит, что для 8-битного типа данных мы отделим первые 8 цифр, а для числового, например, 10. Получившийся ряд цифр переводим в десятичную систему. Получившееся число — количество пакетов данных. Если получаем 1 — это значит, что зашифрован 1 символ. Расшифровать его можно, переведя из двоичной системы следующие 4 цифры в оставшемся ряду.

Если полученное число пакетов больше, чем 1, то приступаем к дальнейшей расшифровке. Для этого переходим к чтению следующего столбца. Мысленно выделяем область 2×12 слева от первого выделенного прямоугольника. Переводим его в двоичный код, используя тот же принцип «змейки». К получившемуся ряду цифр применяем маску, вычисленную с помощью приведенных выше формул, с помощью оператора XOR. Далее для расшифровки ряда цифр делим его на группу из 8, 9 или 10 цифр (ряд читать справа налево), в зависимости от режима чтения (таблица представлена выше). Переводим каждую группу из двоичной системы. Для численных значений используем перевод в десятичную систему. Для перевод 8-битных данный используем таблицу кодировки ASCII.

  • Tutorial

Иногда возникают такие ситуации, когда нужно прочитать QR код, а смартфона под рукой нет. Что же делать? В голову приходит лишь попробовать прочитать вручную. Если кто-нибудь сталкивался с такими ситуациями или кому просто интересно как же читается QR код машинами, то данная статья поможет вам разобраться в этой проблеме.

В статье рассмотрены базовые особенности QR кодов и методика дешифрирования информации без использования вычислительных машин.

Иллюстраций: 14, символов: 8 510.

Для тех, кто не в курсе что такое QR код , есть в английской Wikipedia. Также можно почитать тематический блог на Хабре и несколько хороших статей по смежной тематике, которые можно найти поиском .

Решение задачи непосредственного чтения информации с QR-картинки рассмотрим на примере двух кодов. Информация была закодирована в online-генераторе QR Coder.ru .

Чтобы понять, как извлечь данные из кода, нужно разобраться в алгоритме. Существует несколько стандартов в семействе QR кодов, с их базовыми принципами можно ознакомиться в спецификациях. Кратко поясню: данные, которые необходимо закодировать, разбиваются на блоки в зависимости от режима кодирования. К разбитым по блокам данным прибавляется заголовок, указывающий на режим и количество блоков. Существуют и такие режимы, в которых используется более сложная структура размещения информации. Данные режимы рассматривать не будем ввиду того, что извлекать вручную из них информацию нецелесообразно. Однако, основываясь на тех принципах, которые описаны ниже, можно адаптироваться и к этим режимам.

На случай некорректного чтения данных, в QR применяются специальные коды, которые способны исправить недочёты при чтении. Это так называемые коды Рида-Соломона . Принцип вычисления кодов, а также исправление ошибок в блоках информации рассматривать не будем, это тема отдельной статьи. Корректирующие ошибки коды Рида-Соломона (RS) записываются после всех информационных данных. Это очень упрощает задачу непосредственного чтения информации: можно просто считать данные, не трогая коды. Как показывает практика, обычно бОльшую часть QR -матрицы занимают корректирующие RS-коды.

По стандарту, данные с RS-кодами перед записью в картинку «перемешиваются». Для этих целей используют специальные маски. Существует 8 алгоритмов, среди которых выбирается наилучший. Критерии выбора основаны на системе штрафов, о которых можно также почитать в спецификации.

«Перемешанные» данные записываются в особой последовательности на шаблонную картинку, куда добавляется техническая информация для декодирующих устройств. Исходя из описанного алгоритма, можно выделить схему извлечения данных из QR кода:

Здесь зелёным фломастером подчёркнуты пункты, которые нужно будет выполнить при непосредственном чтении кода. Остальные пункты можно опустить ввиду того, что считывание производит человек.

Шаг 0. QR код

Взглянув на картинки, можно заметить несколько отчётливых областей. Эти области используются для детектирования QR кода. Эти данные не представляют интереса с точки зрения записанной информации, но их нужно вычеркнуть или просто запомнить их расположение, чтобы они не мешали. Всё остальное поле кода несёт уже полезную информацию. Её можно разбить на две части: системная информация и данные. Также существует информация о версии кода. От версии кода зависит максимальный объём данных, которые могут быть записаны в код. При повышении версии – добавляются специальные блоки, например как здесь:

По ним можно сориентироваться и понять какая версия QR перед вами. Коды высоких версий обычно также нецелесообразно считывать вручную.

Размещение системной информации показано на рисунке:

Системная информация дублируется, что позволяет значительно понизить вероятность возникновения ошибок при детектировании кода и считывании. Системная информация – это 15 бит данных, среди которых первые 5 - это полезная информация, а остальные 10 - это BCH (15,5) код, который позволяет исправлять ошибки в системных данных. К классу BCH кодов относят и RS коды. Обратите внимание, что на рисунке две полоски по 15 бит не пересекаются.

Шаг 1. Чтение 5 бит системной информации

Как уже говорилось, интерес представляют только первые 5 бит. Из которых 2 бита показывают уровень коррекции ошибок, а остальные 3 бита показывают какая маска из доступных 8 применяется к данным. В рассматриваемых QR кодах системная информация содержит:

Шаг 2. Маска для системной информации

Кроме уже озвученных схем зашиты системной информации, вдобавок, используется статическая маска, которая применяется к любой системной информации. Она имеет вид: 101010000010010 . Так как имеет интерес только первые 5 бит, то маску можно сократить и легко запомнить: 10101 (десять - сто один). После применения операции «исключающего или» (xor) получаем информацию.

Возможные уровни коррекции ошибок:

L 01
M 00
Q 11
H 10

Возможные маски:

000 (i + j) mod 2 = 0
001 i mod 2 = 0
010 j mod 3 = 0
011 (i + j) mod 3 = 0
100 ((i div 2) + (j div 3)) mod 2 = 0
101 (i j) mod 2 + (i j) mod 3 = 0
110 ((i j) mod 2 + (i j) mod 3) mod 2 = 0
111 ((i+j) mod 2 + (i j) mod 3) mod 2 = 0

Шаг 3. Чтение заголовка данных

Чтобы понять с какими данными предстоит иметь дело, необходимо изначально прочитать 4-х битный заголовок, который содержит в себе информацию о режиме. Специфика чтения данных изображена на картинке:

Список возможных режимов:

P.S. Соблюдайте правила ресурса и условия Creative Commons Attribution 3.0 Unported (CC BY 3.0)

P.P.S. Если ошибся блогом, то подскажите куда - перенесу.

Теги:

  • QR код
  • код Рида-Соломона
Добавить метки

Большинство современных (и даже не самых современных) смартфонов умеют читать как QR- (в том числе и с автоматическим распознаванием URL сайтов), так и обычные шрих-коды с зашифрованными данными о продуктах.

Благодаря такой опции практически каждый мобильный юзер сегодня может не только быстро прочитать краткое описание того или иного товара, но и оперативно сравнить, к примеру, его стоимость с ценами других продавцов и познакомиться с отзывами о продукте тех покупателей, которые уже успели купить его раньше.

Все что для этого требуется это сам мобильный девайс (планшет, смартфон, плеер, в общем, об этом детальнее — на stylus.com.ua), желательно с качественной камерой, и хорошее мобильное приложение для сканирования и чтения QR- и штрих-кодов.

Плюс некоторое умение правильно обращаться с эти весьма полезным в наше время мобильным софтом.

Приложений таких сегодня наделали уже более, чем достаточно, распространяются они как правило бесплатно, и скачать их можно где угодно. Однако ввиду чрезвычайно широкого ассортимента таких программ выбрать ту, которая работать будет быстро и качественно, оказалось делом не таким уж и простым. Тем не менее, найти можно, точнее их уже нашли.

Вот о них и расскажем чуть подробнее. Итак

Как читать QR-коды с помощью Android-смартфона (или планшета)

ШАГ 1
Заходим на Google Play и скачиваем бесплатное приложение QR Code Reader . Размер файла примерно 3MB в зависимости от модели смартфона.

ШАГ 2
Устанавливаем и открываем программу. Далее просто наводим объектив основной камеры смартфона на любой QR-код (либо просто открываем через этот ридер готовую фотографию с кодом), все остальное приложение сделает само.

Важный нюанс : QR Code Reader автоматически меняет браузер, потому если вы хотите использовать тот браузер, к которому вы привыкли и который уже установленный на вашем смартфоне, то в настройках приложения надо только убрать галочку в соответствующем чек-боксе.

Как читать штрих-коды с помощью Android-смартфона (или планшета)

Предположим вам нужно отсканировать шрих-код на упаковке товара в супермаркете, чтобы получить более подробную информацию об этом продукте и/или сравнить указанную цену с предложениями других магазинов. Для этого требуется:

ШАГ 1
Качаем (тоже бесплатно и тоже с Google Play) приложение ShopSavvy . Размер его меньше 1 мегабайта

ШАГ 2
Программка попросит вас зарегистрироваться на сайте ShopSavvy. Однако эта процедура не является обязательной. Потому можем потратить пару минут на создание эккаунта, а можем обойтись без этого. Работаем приложение тоже просто. Открываем, жмем кнопку сканера в правом верхнем углу экрана, наводим камеру смартфона на штрих-код и потом читаем полученную информацию.



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
Выселение. Приватизация. Перепланировка. Ипотека. ИСЖ