Все статьи
Криптография и безопасность

QR-коды: генерация и использование

Как работают QR-коды, типы данных (URL, WiFi, vCard), версии, уровень коррекции, применение.

26 марта 2025
8 мин чтения
ConvertHub
#qr#генератор#мобильные

Введение

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

Что такое QR-код

QR-код (Quick Response Code) — это двумерный штрих-код, разработанный в 1994 году японской компанией Denso Wave для отслеживания деталей на автопроизводстве. В отличие от обычного одномерного штрих-кода, который кодирует лишь десятки цифр, QR-код вмещает до 7089 цифр или 4296 буквенно-цифровых символов.

Стандарт QR-кода описан в ISO/IEC 18004. Алгоритм свободен от патентных ограничений, поэтому QR поддерживается во всех современных смартфонах и используется в тысячах приложений.

Анатомия QR-кода

Стандартный QR-код состоит из нескольких обязательных элементов:

  • Поисковые узоры (Finder Patterns) — три больших квадрата в углах. Они помогают камере найти код и определить его ориентацию.
  • Выравнивающие узоры (Alignment Patterns) — маленькие квадраты, помогающие при искажениях перспективы.
  • Синхронизирующие полосы — пунктирные линии между поисковыми узорами, задающие шаг сетки.
  • Данные и код коррекции ошибок (Reed-Solomon) — основная часть кода.
  • Тихая зона (Quiet Zone) — белая рамка шириной не менее 4 модулей вокруг кода.

Версии QR-кода

Стандарт описывает 40 версий QR-кода — от 21×21 модулей (версия 1) до 177×177 (версия 40). Чем больше данных нужно закодировать, тем выше версия и крупнее сам код.

ВерсияРазмерЦифрыБуквыБайты
121×21412517
537×3715410864
1057×57311219134
2097×97667467286
40177×177708942962953

Коррекция ошибок

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

  • L (Low) — восстанавливает до 7% потерянных данных.
  • M (Medium) — до 15%.
  • Q (Quartile) — до 25%.
  • H (High) — до 30%.

Чем выше уровень, тем больше размер кода при тех же данных. Уровень M подходит для большинства случаев, H — для кодов на упаковке или улице, где код может повредиться. Например, QR на билете в музей лучше генерировать с уровнем H.

Типы данных

QR-код может содержать разные типы данных. Камера смартфона распознаёт формат автоматически и предлагает соответствующее действие.

1. URL

Самый частый сценарий — код содержит ссылку. Пользователь наводит камеру, нажимает «открыть» и переходит на сайт.

2. Текст

Произвольная строка. Подходит для заметок, промокодов, инструкций.

3. WiFi

Специальный формат WIFI:T:WPA;S:NetworkName;P:password;; позволяет гостям подключиться к сети, не вводя пароль вручную. Создать такой код можно в нашем WiFi-QR-генераторе.

4. Контакт (vCard)

QR-код с визиткой в формате vCard. Сканируешь — и контакт добавляется в адресную книгу.

5. SMS и email

Код формата smsto:+79991234567:Текст сообщения илиmailto:user@example.com?subject=...&body=... открывает соответствующее приложение с заполненными полями.

6. Геолокация

Код с координатами geo:55.7558,37.6173 открывает карты с указанной точкой.

7. Платёжные данные

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

Генерация QR-кода

JavaScript (библиотека qrcode)

// npm install qrcode
const QRCode = require('qrcode');

// Генерация в Data URL (PNG)
QRCode.toDataURL('https://converthub.ru', {
  errorCorrectionLevel: 'M',
  width: 300,
  margin: 2,
  color: { dark: '#000000', light: '#ffffff' }
}, (err, url) => {
  console.log(url); // data:image/png;base64,...
});

// Генерация SVG
QRCode.toString('https://converthub.ru', {
  type: 'svg',
  errorCorrectionLevel: 'M'
}, (err, svg) => {
  console.log(svg);
});

Python (qrcode)

import qrcode

img = qrcode.make('https://converthub.ru')
img.save('qr.png')

# С настройками
qr = qrcode.QRCode(
    version=1,
    error_correction=qrcode.constants.ERROR_CORRECT_M,
    box_size=10,
    border=4,
)
qr.add_data('https://converthub.ru')
qr.make(fit=True)
img = qr.make_image(fill_color='black', back_color='white')
img.save('qr.png')

Go (go-qrcode)

package main

import (
  "github.com/skip2/go-qrcode"
)

func main() {
  err := qrcode.WriteFile("https://converthub.ru",
    qrcode.Medium, 256, "qr.png")
  if err != nil {
    panic(err)
  }
}

Дизайн QR-кодов

Современные QR-коды не обязаны быть чёрно-белыми квадратами. При сохранении читаемости можно:

  • Менять цвета переднего и заднего плана (но сохранять контраст не ниже 4:1).
  • Использовать скруглённые модули вместо квадратных.
  • Вставлять логотип в центр кода (с учётом коррекции ошибок).
  • Применять градиенты и паттерны.

Главное правило — проверяйте читаемость на нескольких смартфонах после любого дизайна. Красивый, но не сканируемый код — впустую потраченные деньги.

Безопасность QR-кодов

QR-код сам по себе нейтрален: он лишь хранит строку. Но атакующие могут использовать его для обмана пользователя. Основные угрозы:

  • Phishing. Код ведёт на сайт, имитирующий банк, и просит ввести данные карты.
  • Подмена ссылки. На наклейке поверх оригинального QR-кода наклеен другой.
  • Автоматический запуск действий. QR с mailto: или tel: открывает приложения без подтверждения.
  • Сбор данных. Сервер по ссылке фиксирует IP, User-Agent, геолокацию.

Рекомендации пользователям: проверяйте URL перед нажатием «открыть», не вводите пароли и данные карт на сайтах, открытых через QR. Рекомендации бизнесу: держите QR-коды под прозрачной защитной плёнкой, периодически проверяйте наклейки.

Динамические vs статические QR-коды

СвойствоСтатическийДинамический
СодержимоеЗашито в кодеКороткая ссылка на сервер
Можно изменитьНетДа
АналитикаНетСканов, гео, время
РазмерЗависит от данныхКомпактный
Зависимость от сервераНетДа

Динамические QR удобны для маркетинга: можно менять целевую страницу, собирать статистику сканирований и проводить A/B-тесты. Статические — для визиток, инструкций и случаев, когда код должен жить вечно без сервера.

Применение QR-кодов в бизнесе

  • Меню в ресторанах и кафе.
  • Электронные билеты в театр, кино, транспорт.
  • Платёжные ссылки СБП на кассе.
  • Инструкции к товарам и оборудованию.
  • Логин через QR (WhatsApp Web, Telegram Desktop).
  • Инвентаризация на складе.
  • Подтверждение подлинности товара.

Заключение

QR-код — простой и универсальный инструмент для передачи короткой информации от физического объекта в смартфон. Он бесплатен в использовании, поддерживается всеми камерами телефонов и легко генерируется. Главное при работе с QR — помнить о безопасности: проверяйте ссылки перед открытием и не вводите конфиденциальные данные на сайтах, открытых через незнакомый код. Создать QR-код для своего проекта можно в нашемQR-генераторе, а специальный код для WiFi — в WiFi-QR-генераторе.

Попробуйте эти инструменты

Похожие статьи