Как работает QR-код и что в нём зашифровано
Ты наводишь камеру на чёрно-белый квадратик — и через долю секунды открывается сайт или платёж проходит. Разбираемся, как этот узор из пикселей хранит данные и почему его не сломает даже грязь и царапины.
Ты наводишь камеру на странный чёрно-белый квадрат — и телефон мгновенно открывает сайт, добавляет контакт или проводит оплату. Но что вообще спрятано в этой россыпи пикселей? И почему код читается, даже если он смят, заляпан кофе или наполовину закрыт пальцем?
Чёрное и белое — это нули и единицы
Любой QR-код — это сетка из маленьких квадратиков, которые называют модулями. Каждый модуль либо чёрный, либо белый. И тут начинается главное волшебство: чёрный — это единица, белый — это ноль. Ровно так же, как компьютер хранит вообще всё на свете — музыку, фото, тексты — в виде нулей и единиц.
Представь шахматную доску, где вместо фигур по клеткам разложена секретная записка: закрашена клетка — да, пустая — нет. QR-код устроен похоже, только клеток гораздо больше: от 21×21 в самых маленьких кодах до 177×177 в самых больших. Чем больше сетка — тем больше информации в неё влезает.
Чтобы превратить буквы в эти нули и единицы, используют таблицы кодирования. Например, в стандарте UTF-8 каждой букве и символу соответствует своя комбинация битов. Сканер считывает узор, собирает биты обратно в буквы — и получается читаемая ссылка или текст.
Три глаза, которые помогают коду найти себя
Посмотри на любой QR-код повнимательнее. В трёх углах — больших, верхнем левом, верхнем правом и нижнем левом — ты увидишь по большому квадрату с рамкой внутри. Это поисковые узоры (по-английски их называют finder patterns), и без них ничего бы не работало.
Зачем они нужны? Камера телефона ведь не знает заранее, где код, под каким углом ты его держишь и не перевёрнут ли он вверх ногами. Эти три квадрата — как маяки. Программа сначала находит именно их, а уже по их расположению понимает, где границы кода, насколько он наклонён и как его правильно "развернуть".
Три квадрата в углах — это как уши и нос на лице: даже если ты видишь человека сбоку или в темноте, по ним мозг мгновенно понимает, где верх, где низ и куда смотреть.
Именно поэтому угловых квадратов три, а не четыре. Трёх точек достаточно, чтобы однозначно задать положение и поворот квадрата в пространстве. Четвёртый угол вычисляется сам — а заодно по нему сканер проверяет, не растянут ли код.
Магия, которая чинит повреждённый код
Самое удивительное в QR-коде — он продолжает работать, даже если часть его испорчена. Поцарапали наклейку, капнули соусом, кто-то нарисовал поверх логотип — а код всё равно считывается. Как так?
Секрет в коррекции ошибок. В код заранее встроена избыточность — дополнительные данные, по которым можно восстановить потерянные кусочки. Работает это на математике под названием коды Рида — Соломона (та же технология, что когда-то спасала музыку на поцарапанных CD-дисках).
У QR-кодов есть четыре уровня устойчивости к повреждениям:
- L — можно потерять около 7% кода;
- M — около 15%;
- Q — около 25%;
- H — до 30% площади.
Вот почему дизайнеры спокойно вставляют логотип бренда прямо в центр кода: если выбран высокий уровень коррекции, потерянные под картинкой данные восстановятся из оставшихся. Это как читать SMS, в котором пропущено несколько букв, — ты всё равно понимаешь смысл по контексту, только тут вместо контекста работает строгая математика.
А что вообще можно туда зашить?
Многие думают, что QR-код — это всегда ссылка на сайт. На самом деле внутри может быть почти что угодно, ведь это просто текст, упакованный в узор:
- адрес сайта, который откроется в браузере;
- контакт целиком — имя, телефон, почта (формат vCard);
- данные для подключения к Wi-Fi — название сети и пароль;
- реквизиты для оплаты по СБП;
- обычный текст или даже короткое стихотворение.
Когда ты наводишь камеру, телефон распознаёт, что за данные внутри, и предлагает подходящее действие: открыть ссылку, сохранить контакт, подключиться к сети. Сам код при этом ничего "не делает" — он лишь хранилище. Все решения принимает уже твой телефон.
И ещё важный момент про безопасность: QR-код не может сам по себе "заразить" телефон. Но он легко спрячет ссылку на поддельный сайт — ведь глазами ты не прочитаешь, куда ведёт узор из квадратиков. Поэтому правило простое: прежде чем что-то вводить, посмотри на адрес, который показал телефон. Узор честный, а вот тот, кто его напечатал, — не всегда.
Маленький квадрат — большая идея
QR-код придумал японский инженер Масахиро Хара ещё в 1994 году, чтобы отслеживать детали на заводе. Тогда никто и не думал, что эти квадратики окажутся в меню кафе, на билетах, упаковках и экране твоего телефона по сто раз на дню.
А вся гениальность — в простоте: чёрное и белое как ноль и единица, три маяка по углам, чтобы найти себя в пространстве, и математика, которая чинит повреждения. Теперь, наводя камеру на очередной квадрат, ты будешь знать, что за магия прячется внутри этой россыпи пикселей.