О декодере QR-кодов
Когда код не сканируется, или когда вы хотите увидеть, куда код на самом деле ведёт, прежде чем решить, сканировать ли его, этот инструмент поможет. Он также читает коды, вырезанные из скриншотов, плакатов или PDF.
Что на самом деле содержит QR-код
Многие полагают, что QR-код «содержит URL». Это не обязательно так. QR-код по сути — блок двоичных данных плюс маркер того, как они закодированы. Частые случаи:
- URL: самый частый. Содержимое начинается с
http://илиhttps://, и браузер открывает его после сканирования. - Простой текст: любая строка — серийный номер, пароль, строка инструкции.
- Конфигурация Wi-Fi: начинается с
WIFI:в формеWIFI:T:шифрование;S:имя;P:пароль;;. Это стандарт, используемый Huawei, Xiaomi и другими. - vCard: начинается с
BEGIN:VCARDи несёт имя, телефон и e-mail. - SMS / телефон:
SMSTO:номер:сообщениеилиtel:номер. - Платёжные коды: платёжные коды в WeChat и Alipay — это зашифрованные строки с подписью и сроком действия. Их декодирование даёт бессмысленный набор символов, и это ожидаемо — они задуманы нечитаемыми.
Определив содержимое, инструмент пытается его классифицировать и предлагает подходящую кнопку действия.
Почему декодирование иногда не удаётся
Неудачи обычно попадают в одну из этих категорий:
- Изображение слишком размытое или мелкое. Каждому модулю QR-кода нужно как минимум 2–3 пикселя для надёжного распознавания. Увеличить изображение перед вырезанием скриншота очень помогает.
- Отсутствует тихая зона. QR-коду нужен чистый отступ, по стандарту минимум четыре модуля шириной. Коды со срезанным отступом читаются куда менее надёжно. Если узор касается края изображения, добавьте вокруг белую рамку и попробуйте снова.
- Инвертированные цвета. Стандартная форма — тёмный узор на светлом фоне. Светлое на тёмном теоретически работает, но многие декодеры это не поддерживают. Для инвертированного скриншота сначала инвертируйте цвета.
- Слишком сильные искажения или наклон. Съёмка экрана или кода на изогнутой упаковке даёт перспективные искажения. Легкий наклон не мешает, но сильная деформация не позволяет найти три маркера положения по углам.
- Пересвет или тень. Местные блики выжигают участок модулей до чисто белого, и эти данные потеряны. К счастью, коррекция ошибок (ниже) способна восстановить данные после небольших повреждений.
- Сам код неполный. Если изображение было обрезано, убедитесь, что уцелели три больших квадрата (слева сверху, справа сверху, слева снизу). Это маркеры положения; потеря любого из них делает декодирование почти невозможным.
Как работает коррекция ошибок
QR-код несёт встроенную коррекцию ошибок, используя кодирование Рида — Соломона для добавления избыточности к данным. Есть четыре уровня:
- Уровень L (около 7 % избыточности): восстанавливает примерно 7 % повреждённой области.
- Уровень M (около 15 %): обычное значение по умолчанию.
- Уровень Q (около 25 %): для кодов, которые могут слегка изнашиваться.
- Уровень H (около 30 %): наибольшая избыточность; маркетинговые коды с логотипом в центре обычно используют этот уровень.
Именно поэтому код с логотипом посередине всё равно сканируется — закрытая область попадает в пределы корректирующей способности. Но учтите компромисс: больше избыточности означает меньше ёмкости данных, поэтому один и тот же код на уровне H вмещает примерно вдвое меньше символов, чем на уровне L.
Замечание о безопасности: сначала посмотрите, потом сканируйте
Одна из проблем QR-кодов в том, что содержимое не видно до сканирования — именно поэтому фишинговые кампании их любят. Встретив код из неизвестного источника, особенно наклеенный на велосипеде проката, парковочном талоне или столике в ресторане, сначала декодируйте его:
- Проверьте домен. У добросовестной компании домен постоянный; странная короткая ссылка или похожая опечатка подозрительны.
- Насторожитесь при любой ссылке, запрашивающей личные данные. Платёж, вход, номер удостоверения — всё это требует особой осторожности.
- Обратите внимание на коды
WIFI:— подключение к неизвестной сети рискует тем, что ваш трафик будут перехватывать.
О приватности
Декодирование происходит полностью в браузере: изображение считывается в память, локально переводится в оттенки серого и бинаризуется, позиционируется, затем декодируется — без сетевых запросов на любом этапе. Нажмите F12, откройте панель «Сеть» и перетащите туда изображение: загрузки не появится. Безопасно проверять скриншоты с личными кодами, такими как код здоровья или членский код.
Частые вопросы
Умеет читать снимки экрана?
Да. Пока область кода захвачена полностью — не срезайте окружающий отступ — успешность высокая. Если код занимает лишь малую часть скриншота, сначала обрежьте до этой области для лучшего результата.
Может прочитать несколько кодов сразу?
По одному изображению за раз. Если на изображении несколько кодов, инструмент пытается прочитать один, обычно самый крупный и центральный. Чтобы прочитать все, вырезайте каждый отдельно.
Поддерживаются динамические коды?
«Динамический» код — всё тот же обычный QR-код; только его URL указывает на сервис перенаправления. Декодирование даёт вам промежуточный адрес перенаправления, а не конечную целевую страницу. Это ожидаемый результат.
Платёжные коды WeChat дают бессмыслицу — что-то сломано?
Нет. Платёжный код по замыслу содержит зашифрованное, ограниченное по времени платёжное полномочие, намеренно нечитаемое. Любой инструмент выдаст ту же самую строку.
Изображения сохраняются на сервере?
Нет, и они никогда не покидают ваш компьютер. У инструмента нет бэкенда; вся логика работает в браузере. Он продолжает работать и с отключённой сетью.