Простыми словами · технологии
Разбираем по клеткам настоящий QR-код: в нем записана ссылка на эту страницу — можно навести камеру и проверить. Девять шагов: как камера находит код, где лежат данные и почему он читается, даже если часть закрыта.
Шаг 01 / 09
QR-код — это текст, записанный картинкой. В этом коде — ссылка на эту страницу: https://marcella.solutions/explain/qr, 37 символов.
Технически: черный модуль — единица, белый — ноль. Сетка 29×29 модулей — это «версия 3».
Модуль — одна клетка кода. Версия — размер сетки: от 1 (21×21) до 40 (177×177).
Проверьте сами: наведите камеру телефона на код — откроется эта же страница. Код настоящий, его можно распечатать.
QR-код — это текст, записанный картинкой. Чаще всего внутри ссылка, но может быть что угодно: номер телефона, данные для входа в Wi-Fi, реквизиты для оплаты. Название — от английского Quick Response, «быстрый отклик». Код придумали в 1994 году в японской компании Denso Wave, чтобы считывать маркировку автодеталей на заводах Toyota, и сделали свободным для всех.
Код — это сетка из черных и белых клеток, их называют модулями. Черный модуль — единица, белый — ноль. Часть модулей служебная: три больших квадрата в углах помогают камере найти код и понять, как он повернут, пунктирные полосы задают размер сетки, маленький квадрат исправляет перекос. Остальное — данные и запас на ошибки: дополнительные байты, по которым телефон восстанавливает поцарапанные или закрытые места.
Размер сетки зависит от того, сколько записано: от 21×21 модуля до 177×177. В самый большой код помещается 2953 байта — около страницы текста. В нашем коде 29×29 модулей: ссылка из 37 символов с запасом, которого хватает, чтобы прочитать код с закрытым куском — это показано на шаге 8.
Сам по себе QR-код безопасен: это просто текст. Опасным бывает адрес, на который он ведет, поэтому перед переходом стоит посмотреть, что показал телефон. По QR-коду работает и оплата через СБП — внутри кода лежит ссылка на счет в Системе быстрых платежей.
Подключу оплату через СБП: QR-код на компьютере, переход в приложение банка на телефоне. Или сделаю Telegram-бота, который сам выставляет счет и присылает QR.