QR Code
QR Code (Quick Response Code)
Двумерный штрихкод, состоящий из чёрных и белых квадратных модулей, расположенных в виде сетки. Может кодировать текст, URL-адреса, контактную информацию и другие данные, считываемые камерами смартфонов и специализированными сканерами.
Техническая деталь
QR-коды (ISO 18004) имеют 40 версий — от 21×21 модулей (Версия 1, 25 буквенно-цифровых символов) до 177×177 модулей (Версия 40, 4 296 буквенно-цифровых символов). Используется коррекция ошибок Рида — Соломона на четырёх уровнях: L (восстановление 7%), M (15%), Q (25%) и H (30%). Процесс кодирования включает анализ данных, кодирование с коррекцией ошибок, размещение модулей (данные, синхронизация, выравнивание, поиск и формат) и маскирование (8 шаблонов для минимизации визуальных артефактов). QR-коды могут кодировать числовые, буквенно-цифровые, байтовые и данные Kanji. В JavaScript библиотеки qrcode.js и qr-code-styling генерируют QR-коды на Canvas или SVG-элементах на стороне клиента.
Пример
```javascript
// QR Code — Web Crypto API example
const data = new TextEncoder().encode('sensitive data');
const hash = await crypto.subtle.digest('SHA-256', data);
const hex = Array.from(new Uint8Array(hash))
.map(b => b.toString(16).padStart(2, '0')).join('');
```