Сканер штрихкодов, который уже у вас в кармане

Телефон сканирует.
Компьютер получает.
Между ними — туннель.

Откройте ScanTunnel в браузере на компьютере, наведите телефон на QR-код — и камера становится сканером. Каждый код за долю секунды появляется в списке на экране. Ничего не нужно устанавливать, а сервер не может прочитать ни одного значения.

  • 0 приложений ставить
  • 2 экрана — телефон и ПК
  • AES-256 от камеры до экрана
Без установкиБез регистрацииСквозное шифрованиеiPhone и Android14 форматов кодовРаботает при плохой сетиЭкспорт в ExcelМожно развернуть у себя

01 · Как это работает

Три шага и никаких проводов

Не нужен ручной сканер, драйверы, Bluetooth-сопряжение или аккаунт. Только браузер на двух устройствах.

  1. 1

    Откройте ScanTunnel на компьютере

    Страница сама создаёт сессию с собственным ключом шифрования и показывает QR-код. Ключ рождается в браузере и никуда не уходит.

  2. 2

    Наведите телефон на QR

    Обычная камера открывает ссылку — и сканер на телефоне уже связан с вашим компьютером. Подключить можно несколько телефонов сразу.

  3. 3

    Сканируйте

    Штрихкоды, QR, DataMatrix — всё летит в список на экране. Ищите, отмечайте дубли, выгружайте в CSV для Excel.

02 · Сквозное шифрование

Сервер передаёт ваши данные, но не видит их

Каждый скан шифруется на телефоне и расшифровывается только в браузере на компьютере. Посередине — запечатанный конверт.

📱 Телефон видит

4607001771562 EAN-13 · открытый текст

☁️ Сервер видит

iv: 3fQk… ct: Zr8x… AES-GCM · 256 бит

💻 Компьютер видит

4607001771562 расшифровано локально
Как именно это устроено?ключи, хеши и честная модель угроз

https://…/s#r=Xk2…&k=pQ9…

Ключ живёт после «#»

Всё, что в ссылке после #, браузер никогда не отправляет на сервер. Поэтому ключ не попадает ни в запросы, ни в логи.

HKDF-SHA256 → encKey + authToken

Сервер хранит только хеш

Из одного секрета выводятся ключ шифрования и токен доступа. Сервер знает лишь SHA-256 токена — открыть сессию по нему нельзя.

QR = qrcodegen(browser)

QR рисуется на вашем экране

Сервер не генерирует картинку QR — иначе ему пришлось бы узнать ключ. Сессии без активности удаляются через 7 дней.

Честно: от чего это защищает, а от чего нет

Защищает

  • Диск, бэкапы и логи сервера содержат только шифротекст
  • Администратор с доступом к серверу значений не прочитает
  • Знания пароля к сайту недостаточно — нужен ещё QR
  • От CSRF: особый заголовок, Sec-Fetch-Site, только JSON

Не защищает

  • Если сервер взломан и отдаёт подменённый код страницы — общее ограничение веб-E2E
  • Если кто-то сфотографировал QR с экрана
  • Метаданные видны: число сканов, время и размер

03 · Возможности

Сделано для реальной работы, а не для демо

Два режима сканирования

Подтверждение — кадр замирает, вы проверяете код и жмёте «Отправить и дальше». Авто — поток без касаний: тот же код повторно примется, только когда исчезнет из кадра.

«Уже в списке ×2»

Телефон сам расшифровывает список и предупредит, если код уже сканировали. На компьютере — фильтр «только дубли».

Пропала сеть — не беда

Сканы копятся в очереди на телефоне и досылаются, когда связь вернётся. Повторная отправка никогда не задвоит запись.

CSV, TXT, JSON

Выгрузка в один клик. CSV сразу открывается в Excel с кириллицей и защитой от формул-инъекций.

Несколько телефонов

Раздайте QR коллегам — все сканируют в один общий список, а на компьютере видно, сколько устройств на связи.

Ничего не теряется

Перезагрузили вкладку, уснул ноутбук, перезапустили сервер — список восстановится ровно в том же порядке.

14 форматов — от продуктов до логистики

  • EAN-13
  • EAN-8
  • UPC-A
  • UPC-E
  • ISBN
  • Code 128
  • Code 39
  • Code 93
  • ITF
  • Codabar
  • QR
  • DataMatrix
  • Aztec
  • PDF417

Chrome и Android распознают встроенным детектором, iPhone и Firefox — быстрым движком zxing на WebAssembly.

04 · Кому пригодится

Везде, где коды нужно перенести в компьютер

Склад и инвентаризация

Пройдите по полкам с телефоном — на ноутбуке сразу готовая ведомость для сверки.

Магазин и приёмка

Сверка поставки по EAN без покупки ТСД. Несколько сотрудников — один список.

Библиотеки

ISBN книг сразу в таблицу каталога. Дубли подсвечиваются ещё на телефоне.

Мероприятия

Регистрация по QR-билетам: кто пришёл — видно на экране у стойки.

Сервис и IT

Серийные номера оборудования и инвентарные наклейки без ручного набора.

Для себя

Домашняя библиотека, коллекция, учёт запасов — быстрее, чем печатать руками.

05 · Свой сервер

Открытый код. Разверните у себя за вечер

Python + SQLite + nginx, без Docker и без внешних зависимостей в рантайме: все библиотеки лежат в репозитории с зафиксированными хешами. Один скрипт настраивает сервер, TLS и пароль.

  • Один процесс и один файл базы — легко бэкапить
  • Никаких CDN и сторонних трекеров
  • Раздельные dev и prod, откат одной командой
Исходники на GitHub скоро
~/scantunnel
# локально
$ make venv && make dev
→ http://127.0.0.1:8770

# сервер, один раз
$ sudo ./deploy/bootstrap.sh --instance prod \
    --domain scan.example.com --htpasswd-ask
✓ nginx  ✓ systemd  ✓ sqlite  ✓ tls

# обновления
$ make deploy-dev REF=main
$ make deploy-prod

06 · Вопросы

Частые вопросы

Не нашли ответа? Спросите в Telegram: @nemilya

Нужно ли что-то устанавливать на телефон?

Нет. Сканер — это обычная веб-страница. Камера работает прямо в браузере: Safari на iPhone, Chrome на Android.

Камера не открывается — что делать?

Браузеры дают доступ к камере только по HTTPS и только после разрешения. Проверьте, что камера разрешена для сайта и адрес начинается с https://.

Не наплодит ли он одинаковых записей?

Код принимается после двух одинаковых чтений подряд и только если он в центре рамки. В режиме «Авто» тот же код повторно засчитается, только когда пропадёт из кадра. А если значение уже есть в списке, телефон честно скажет «уже в списке».

Где хранятся мои данные и как долго?

На сервере — только зашифрованные «конверты», которые без ключа из QR бесполезны. Сессия, к которой не обращались 7 дней, удаляется целиком. Кнопка «Очистить» стирает список сразу.

Сколько кодов можно отсканировать?

До 5000 в одной сессии — при переполнении самые старые записи уходят. Для новой работы просто нажмите «Новая сессия»: будут новые комната и ключ.

Можно подключить несколько телефонов?

Да. Все, кто отсканировал QR с вашего компьютера, пишут в общий список. На компьютере видно, сколько телефонов сейчас на связи.

Скоро запуск

Телефон уже сканер.
Мы наводим последний лоск.

Хотите ранний доступ, есть задача под сканер или просто вопрос? Напишите в Telegram.

Написать @nemilya