Vöötkoodiskanner, mis on juba sinu taskus

Telefon skannib.
Arvuti saab kätte.
Vahel on tunnel.

Ava ScanTunnel arvuti brauseris, suuna telefon QR-koodile — ja kaamerast saab skanner. Iga kood jõuab hetkega ekraanil olevasse nimekirja. Midagi pole vaja paigaldada — ja server ei saa lugeda ühtegi väärtust.

  • 0 rakendust paigaldada
  • 2 ekraani: telefon ja arvuti
  • AES-256 kaamerast ekraanini
Ilma paigaldamisetaIlma registreerimisetaOtspunktkrüpteeritudiPhone ja Android14 vöötkoodivormingutTöötab ka kehva võrgugaEksport ExcelisseSaab ise majutada

Video · 1:42

Vaata, kuidas see töötab

Milleks see on, kuidas telefon arvutiga ühendub, miks server sinu andmeid lugeda ei saa ja mis juhtub, kui võrk kaob.

01 · Kuidas see töötab

Kolm sammu, null kaablit

Pole vaja käsiskannerit, draivereid, Bluetoothi sidumist ega kontot. Ainult brauser kahes seadmes.

  1. 1

    Ava ScanTunnel arvutis

    Leht loob seansi oma krüpteerimisvõtmega ja näitab QR-koodi. Võti sünnib sinu brauseris ega lahku sealt kunagi.

  2. 2

    Suuna telefon QR-koodile

    Tavaline kaamerarakendus avab lingi — ja skanneri leht on arvutiga juba ühendatud. Korraga võib liituda mitu telefoni.

  3. 3

    Skanni

    Vöötkoodid, QR, DataMatrix — kõik jõuab ekraanil olevasse nimekirja. Otsi, leia duplikaadid, ekspordi Exceli jaoks CSV-na.

02 · Otspunktkrüpteerimine

Server edastab sinu andmeid, aga ei näe neid

Iga skann krüpteeritakse telefonis ja dekrüpteeritakse ainult sinu arvuti brauseris. Vahepeal liigub suletud ümbrik.

📱 Telefon näeb

4607001771562 EAN-13 · avatekst

☁️ Server näeb

iv: 3fQk… ct: Zr8x… AES-GCM · 256-bitine

💻 Arvuti näeb

4607001771562 dekrüpteeritud kohapeal
Kuidas see täpselt töötab?võtmed, räsid ja aus ohumudel

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

Võti elab pärast „#“-märki

Brauserid ei saada lingi #-järgset osa kunagi serverisse. Seega ei satu võti päringutesse ega logidesse.

HKDF-SHA256 → encKey + authToken

Server hoiab ainult räsi

Ühest saladusest tuletatakse nii krüpteerimisvõti kui ka ligipääsuluba. Server teab ainult loa SHA-256 räsi — sellest ei piisa seansi avamiseks.

QR = qrcodegen(browser)

QR-kood joonistatakse sinu ekraanil

Server ei loo kunagi QR-pilti — selleks peaks ta võtit teadma. Seansid, mida pole 7 päeva kasutatud, kustutatakse.

Ausalt: mille eest see kaitseb ja mille eest mitte

Kaitseb

  • Serveri kettal, varukoopiates ja logides on ainult krüptotekst
  • Serverile ligipääsuga administraator ei saa väärtusi lugeda
  • Saidi parooli teadmisest ei piisa — vaja on ka QR-koodi
  • CSRF: kohandatud päis, Sec-Fetch-Site, ainult JSON

Ei kaitse

  • Kompromiteeritud server, mis serveerib muudetud lehekoodi — iga veebipõhise E2E piirang
  • Keegi, kes pildistab sinu ekraanil olevat QR-koodi
  • Metaandmed: skannide arv, aeg ja suurus on nähtavad

03 · Võimalused

Tehtud päris tööks, mitte demoks

Kaks skannimisrežiimi

Kinnitus — kaader peatub, kontrollid koodi ja vajutad „Saada ja edasi“. Automaatne — käed jäävad vabaks: sama kood võetakse uuesti vastu alles siis, kui see on kaadrist lahkunud.

„Juba nimekirjas ×2“

Telefon dekrüpteerib nimekirja ise ja hoiatab, kui koodi on juba skannitud. Arvutis on filter „ainult duplikaadid“.

Levi kadus? Pole probleemi

Skannid kogunevad telefonis järjekorda ja saadetakse ära, kui ühendus taastub. Kordussaatmine ei tekita topeltkirjeid.

CSV, TXT, JSON

Eksport ühe klikiga. CSV avaneb Excelis korrektselt ja on kaitstud valemite süstimise eest.

Mitu telefoni

Jaga QR-koodi kolleegidega — kõik skannivad ühte ühisesse nimekirja ja arvuti näitab, mitu seadet on ühendatud.

Midagi ei lähe kaotsi

Laadisid vahelehe uuesti, sülearvuti jäi magama, server taaskäivitus — nimekiri tuleb tagasi täpselt samas järjekorras.

14 vormingut — toidupoest logistikani

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

Chrome ja Android kasutavad sisseehitatud vöötkoodituvastajat, iPhone ja Firefox kiiret zxing-mootorit WebAssemblys.

04 · Kellele

Kõikjal, kus koodid peavad arvutisse jõudma

Ladu ja inventuur

Käi riiulid telefoniga läbi — sülearvutis ootab valmis tabel võrdlemiseks.

Kauplus ja kauba vastuvõtt

Kontrolli tarneid EAN-i järgi ilma käsiterminale ostmata. Mitu töötajat — üks nimekiri.

Raamatukogud

Raamatute ISBN-id otse kataloogitabelisse. Duplikaadid märgitakse kohe telefonis.

Üritused

Registreerimine QR-piletiga: kes on kohale jõudnud, on näha registreerimislaua ekraanil.

IT ja hooldus

Seadmete seerianumbrid ja inventarikleebised ilma käsitsi trükkimata.

Lihtsalt endale

Koduraamatukogu, kollektsioonid, sahvri inventuur — kiirem kui trükkida.

05 · Oma server

Avatud lähtekood. Majuta ise ühe õhtuga

Python + SQLite + nginx, ilma Dockerita ja ilma väliste sõltuvusteta käitusajal: kõik teegid on repositooriumis fikseeritud räsidega. Üks skript seadistab serveri, TLS-i ja parooli.

  • Üks protsess, üks andmebaasifail — lihtne varundada
  • Ei mingeid CDN-e ega kolmandate osapoolte jälgijaid
  • Eraldi dev ja prod, tagasipööramine ühe käsuga
Lähtekood GitHubis varsti
~/scantunnel
# kohalikult
$ make venv && make dev
→ http://127.0.0.1:8770

# server, üks kord
$ sudo ./deploy/bootstrap.sh --instance prod \
    --domain scan.example.com --htpasswd-ask
✓ nginx  ✓ systemd  ✓ sqlite  ✓ tls

# uuendused
$ make deploy-dev REF=main
$ make deploy-prod

06 · Küsimused

Korduma kippuvad küsimused

Ei leidnud vastust? Küsi Telegramis: @nemilya

Kas telefoni on vaja midagi paigaldada?

Ei. Skanner on tavaline veebileht. Kaamera töötab otse brauseris: iPhone’is Safaris, Androidis Chrome’is.

Kaamera ei avane — mida teha?

Brauserid lubavad kaamerat kasutada ainult HTTPS-i kaudu ja pärast sinu nõusolekut. Kontrolli, et kaamera on saidile lubatud ja aadress algab https://.

Kas sellest ei teki hunnikut duplikaate?

Kood võetakse vastu pärast kahte järjestikust ühesugust lugemist ja ainult siis, kui see on kaadri keskel. Automaatrežiimis loetakse sama kood uuesti alles pärast seda, kui see on kaadrist lahkunud. Ja kui väärtus on juba nimekirjas, annab telefon sellest teada.

Kus minu andmeid hoitakse ja kui kaua?

Serveris on ainult krüpteeritud ümbrikud, mis on ilma QR-koodis oleva võtmeta kasutud. Seanss, mida pole 7 päeva puudutatud, kustutatakse täielikult. Nupp „Tühjenda“ kustutab nimekirja kohe.

Kui palju koode saab skannida?

Kuni 5000 ühes seansis — edasi kaovad kõige vanemad kirjed. Uue töö jaoks vajuta lihtsalt „Uus seanss“: saad uue toa ja uue võtme.

Kas saab ühendada mitu telefoni?

Jah. Kõik, kes skannisid sinu arvutis QR-koodi, kirjutavad samasse nimekirja. Arvuti näitab, mitu telefoni on parajasti võrgus.

Varsti avame

Sinu telefon on juba skanner.
Lihvime viimaseid detaile.

Soovid varajast ligipääsu, sul on skannerile sobiv ülesanne või lihtsalt küsimus? Kirjuta mulle Telegramis.

Kirjuta @nemilya