← Назад к блогу

QR-код / Штрихкод / Цифровая безопасность

Как работают QR-коды: структура, сканирование, надёжность и безопасность

PetexSpace

QR-код - это не картинка, указывающая на информацию, хранящуюся где-то ещё. Чёрные и светлые модули кодируют саму полезную нагрузку, а также информацию, которая помогает сканеру найти, интерпретировать и восстановить символ. Полезная нагрузка часто представляет собой URL, но также может быть текстом, контактными данными, настройками Wi-Fi или другими данными, понятными сканирующему приложению.

QR-код был разработан компанией DENSO WAVE и стандартизирован на международном уровне как ISO/IEC 18004. Часто встречающийся формат Model 2 имеет 40 версий. Версия 1 содержит сетку модулей 21 на 21. Каждая следующая версия добавляет по четыре модуля с каждой стороны, достигая 177 на 177 в версии 40.

Части, которые вы видите

  • Поисковые узоры: три больших вложенных квадрата помогают сканеру найти код и определить его ориентацию.
  • Разделители и свободная зона: светлое пространство предотвращает смешение поисковых узоров и всего символа с окружающим содержимым.
  • Синхронизирующие узоры: чередующиеся модули помогают сканеру установить расстояние между модулями сетки.
  • Узоры выравнивания: дополнительные метки помогают исправить перспективу и искажения в больших версиях.
  • Информация о формате и версии: зарезервированные модули описывают детали коррекции ошибок и маскирования, необходимые для декодирования.
  • Модули данных и коррекции ошибок: оставшийся структурированный путь хранит закодированную полезную нагрузку и информацию для восстановления.
QR Code anatomy showing three finder patterns, timing modules, data area, and quiet zone
The large corner squares locate the symbol. The surrounding quiet zone keeps nearby graphics from confusing the scanner.

Как сканер считывает символ

  1. Камера захватывает изображение и находит высококонтрастные угловые узоры.
  2. Сканер оценивает ориентацию, перспективу, размер модуля и границы сетки.
  3. Он производит выборку светлых и тёмных модулей, затем считывает информацию о формате и версии.
  4. Маска снимается, и кодовые слова восстанавливаются в заданном порядке.
  5. Коррекция ошибок пытается восстановить повреждённые или нечитаемые кодовые слова.
  6. Сегменты данных декодируются в текст или другую полезную нагрузку для интерпретации приложением.

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

Коррекция ошибок полезна, но не волшебна

QR-код предоставляет четыре стандартных уровня коррекции ошибок: L, M, Q и H. DENSO WAVE описывает приблизительные уровни восстановления 7, 15, 25 и 30 процентов от общего количества кодовых слов. Более высокая коррекция использует больше места, что может сделать символ более плотным или потребовать большей версии для той же полезной нагрузки.

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

Почему QR-код становится больше или плотнее

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

DENSO WAVE указывает теоретический максимум в 7 089 числовых символов для Model 2 версии 40 при самом низком уровне коррекции ошибок. Этот предел не является практической целью для сканирования с телефона. Компактная полезная нагрузка, адекватный физический размер модуля, высокий контраст и свободная зона в четыре модуля обычно более полезны, чем максимальная ёмкость.

Как создать надёжный QR-код

  1. Используйте самую короткую точную полезную нагрузку, которую вы контролируете. Удалите ненужные параметры отслеживания, если они не требуются.
  2. Держите тёмные модули на светлом, однотонном фоне с сильным контрастом.
  3. Сохраняйте свободную зону шириной не менее четырёх модулей вокруг стандартного QR-кода.
  4. Изменяйте размер с помощью метода ближайшего соседа или векторного вывода, чтобы края модулей оставались квадратными и чёткими.
  5. Не растягивайте символ и не размещайте графику поверх структурных узоров.
  6. Тестируйте при конечном размере отображения или печати с несколькими устройствами, расстояниями, углами и условиями освещения.

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

Phone decoding a QR Code and inspecting its destination before opening it
Scanning reveals a payload. It does not prove that the destination is safe, so inspect the result before continuing.

Сканирование - это данные, а не сигнал доверия

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

  • Предпочитайте встроенный предпросмотр камеры или считыватель, который показывает декодированный пункт назначения перед его открытием.
  • Не предполагайте, что напечатанный код заслуживает доверия, потому что окружающая вывеска выглядит профессионально. Наклейка может закрывать исходный код.
  • Если пункт назначения просит вас войти, откройте известный сервис независимо, когда это возможно.
  • Относитесь к загруженным файлам и запросам настройки с той же осторожностью, что и к ссылкам, полученным по электронной почте или в сообщении.

Основная идея

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

Основные ссылки

DENSO WAVE: функции и структура QR-кода. DENSO WAVE: коррекция ошибок. DENSO WAVE: требуемая свободная зона.