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.
Vöötkoodiskanner, mis on juba sinu taskus
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.
Video · 1:42
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
Pole vaja käsiskannerit, draivereid, Bluetoothi sidumist ega kontot. Ainult brauser kahes seadmes.
Leht loob seansi oma krüpteerimisvõtmega ja näitab QR-koodi. Võti sünnib sinu brauseris ega lahku sealt kunagi.
Tavaline kaamerarakendus avab lingi — ja skanneri leht on arvutiga juba ühendatud. Korraga võib liituda mitu telefoni.
Vöötkoodid, QR, DataMatrix — kõik jõuab ekraanil olevasse nimekirja. Otsi, leia duplikaadid, ekspordi Exceli jaoks CSV-na.
02 · Otspunktkrüpteerimine
Iga skann krüpteeritakse telefonis ja dekrüpteeritakse ainult sinu arvuti brauseris. Vahepeal liigub suletud ümbrik.
📱 Telefon näeb
☁️ Server näeb
💻 Arvuti näeb
https://…/s#r=Xk2…&k=pQ9…
Brauserid ei saada lingi #-järgset osa kunagi serverisse. Seega ei satu võti päringutesse ega logidesse.
HKDF-SHA256 → encKey + authToken
Ü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)
Server ei loo kunagi QR-pilti — selleks peaks ta võtit teadma. Seansid, mida pole 7 päeva kasutatud, kustutatakse.
03 · Võimalused
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.
Telefon dekrüpteerib nimekirja ise ja hoiatab, kui koodi on juba skannitud. Arvutis on filter „ainult duplikaadid“.
Skannid kogunevad telefonis järjekorda ja saadetakse ära, kui ühendus taastub. Kordussaatmine ei tekita topeltkirjeid.
Eksport ühe klikiga. CSV avaneb Excelis korrektselt ja on kaitstud valemite süstimise eest.
Jaga QR-koodi kolleegidega — kõik skannivad ühte ühisesse nimekirja ja arvuti näitab, mitu seadet on ühendatud.
Laadisid vahelehe uuesti, sülearvuti jäi magama, server taaskäivitus — nimekiri tuleb tagasi täpselt samas järjekorras.
Chrome ja Android kasutavad sisseehitatud vöötkoodituvastajat, iPhone ja Firefox kiiret zxing-mootorit WebAssemblys.
04 · Kellele
Käi riiulid telefoniga läbi — sülearvutis ootab valmis tabel võrdlemiseks.
Kontrolli tarneid EAN-i järgi ilma käsiterminale ostmata. Mitu töötajat — üks nimekiri.
Raamatute ISBN-id otse kataloogitabelisse. Duplikaadid märgitakse kohe telefonis.
Registreerimine QR-piletiga: kes on kohale jõudnud, on näha registreerimislaua ekraanil.
Seadmete seerianumbrid ja inventarikleebised ilma käsitsi trükkimata.
Koduraamatukogu, kollektsioonid, sahvri inventuur — kiirem kui trükkida.
05 · Oma server
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.
# 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
Ei leidnud vastust? Küsi Telegramis: @nemilya
Ei. Skanner on tavaline veebileht. Kaamera töötab otse brauseris: iPhone’is Safaris, Androidis Chrome’is.
Brauserid lubavad kaamerat kasutada ainult HTTPS-i kaudu ja pärast sinu nõusolekut. Kontrolli, et kaamera on saidile lubatud ja aadress algab https://.
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.
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.
Kuni 5000 ühes seansis — edasi kaovad kõige vanemad kirjed. Uue töö jaoks vajuta lihtsalt „Uus seanss“: saad uue toa ja uue võtme.
Jah. Kõik, kes skannisid sinu arvutis QR-koodi, kirjutavad samasse nimekirja. Arvuti näitab, mitu telefoni on parajasti võrgus.
Varsti avame
Soovid varajast ligipääsu, sul on skannerile sobiv ülesanne või lihtsalt küsimus? Kirjuta mulle Telegramis.
Kirjuta @nemilya