https://…/s#r=Xk2…&k=pQ9…
Khóa nằm sau dấu “#”
Trình duyệt không bao giờ gửi phần đường link sau # lên máy chủ. Vì vậy khóa không bao giờ xuất hiện trong yêu cầu hay nhật ký.
Máy quét mã vạch đã nằm sẵn trong túi bạn
Mở ScanTunnel trên trình duyệt máy tính, hướng điện thoại vào mã QR — và camera trở thành máy quét. Mỗi mã hiện ra trong danh sách trên màn hình chỉ trong tích tắc. Không cần cài gì — và máy chủ không đọc được một giá trị nào.
Video
Hai phút từ con số không đến lần quét đầu tiên: một trình duyệt, một mã QR, một chiếc điện thoại.
01 · Cách hoạt động
Không cần máy quét cầm tay, driver, ghép nối Bluetooth hay tài khoản. Chỉ cần trình duyệt trên hai thiết bị.
Trang web tạo một phiên với khóa mã hóa riêng và hiển thị mã QR. Khóa được tạo ngay trong trình duyệt của bạn và không bao giờ rời khỏi đó.
Ứng dụng camera thông thường mở đường link — và trang máy quét đã được nối với máy tính của bạn. Nhiều điện thoại có thể tham gia cùng lúc.
Mã vạch, QR, DataMatrix — tất cả đổ vào danh sách trên màn hình. Tìm kiếm, phát hiện mã trùng, xuất CSV cho Excel.
02 · Mã hóa đầu cuối
Mỗi lần quét được mã hóa trên điện thoại và chỉ được giải mã trong trình duyệt trên máy tính của bạn. Ở giữa chỉ là một phong bì niêm phong.
📱 Điện thoại thấy
☁️ Máy chủ thấy
💻 Máy tính thấy
https://…/s#r=Xk2…&k=pQ9…
Trình duyệt không bao giờ gửi phần đường link sau # lên máy chủ. Vì vậy khóa không bao giờ xuất hiện trong yêu cầu hay nhật ký.
HKDF-SHA256 → encKey + authToken
Từ một bí mật sinh ra cả khóa mã hóa lẫn mã truy cập. Máy chủ chỉ biết SHA-256 của mã truy cập — không đủ để mở phiên.
QR = qrcodegen(browser)
Máy chủ không bao giờ tạo ảnh QR — nếu không nó sẽ phải biết khóa. Phiên không dùng đến trong 7 ngày sẽ bị xóa.
03 · Tính năng
Xác nhận — khung hình dừng lại, bạn kiểm tra mã và bấm “Gửi & tiếp”. Tự động — quét liên tục, rảnh tay: cùng một mã chỉ được nhận lại sau khi nó ra khỏi khung hình.
Điện thoại tự giải mã danh sách và cảnh báo nếu mã đã được quét. Trên máy tính — bộ lọc “chỉ mã trùng”.
Các lần quét xếp hàng chờ trên điện thoại và được gửi khi có kết nối trở lại. Gửi lại không bao giờ tạo bản ghi trùng.
Xuất bằng một cú nhấp. CSV mở đúng trong Excel và được bảo vệ khỏi chèn công thức.
Chia sẻ mã QR với đồng nghiệp — mọi người quét vào cùng một danh sách, và máy tính hiển thị có bao nhiêu thiết bị đang kết nối.
Tải lại tab, laptop ngủ, máy chủ khởi động lại — danh sách quay về đúng thứ tự như cũ.
Chrome và Android dùng bộ nhận diện mã vạch có sẵn; iPhone và Firefox dùng engine zxing nhanh trên WebAssembly.
04 · Dành cho ai
Đi dọc các kệ với điện thoại — trên laptop đã có sẵn bảng để đối chiếu.
Kiểm hàng giao theo mã EAN mà không cần mua máy quét cầm tay. Nhiều nhân viên — một danh sách.
Mã ISBN của sách vào thẳng bảng tính danh mục. Mã trùng được báo ngay trên điện thoại.
Check-in bằng vé QR: ai đã đến hiện ngay trên màn hình ở quầy lễ tân.
Số sê-ri thiết bị và mã tài sản mà không cần gõ tay.
Tủ sách gia đình, bộ sưu tập, kiểm kê tủ đồ ăn — nhanh hơn gõ phím.
05 · Máy chủ của riêng bạn
Python + SQLite + nginx, không Docker và không tải gì từ bên ngoài khi chạy: mọi thư viện nằm trong kho mã với hash cố định. Một script cài đặt máy chủ, TLS và mật khẩu.
# trên máy của bạn $ make venv && make dev → http://127.0.0.1:8770 # máy chủ, một lần $ sudo ./deploy/bootstrap.sh --instance prod \ --domain scan.example.com --htpasswd-ask ✓ nginx ✓ systemd ✓ sqlite ✓ tls # cập nhật $ make deploy-dev REF=main $ make deploy-prod
06 · Câu hỏi
Không tìm thấy câu trả lời? Hỏi qua Telegram: @nemilya
Không. Máy quét là một trang web bình thường. Camera hoạt động ngay trong trình duyệt: Safari trên iPhone, Chrome trên Android.
Trình duyệt chỉ cho dùng camera qua HTTPS và sau khi bạn cấp quyền. Hãy kiểm tra camera đã được cho phép với trang này và địa chỉ bắt đầu bằng https://.
Một mã chỉ được nhận sau hai lần đọc giống nhau liên tiếp và chỉ khi nó nằm giữa khung hình. Ở chế độ Tự động, cùng một mã chỉ được tính lại sau khi nó ra khỏi khung hình. Còn nếu giá trị đã có trong danh sách, điện thoại sẽ báo cho bạn.
Máy chủ chỉ giữ những phong bì đã mã hóa, vô dụng nếu không có khóa trong mã QR. Phiên không dùng đến trong 7 ngày sẽ bị xóa hoàn toàn. Nút “Xóa” xóa danh sách ngay lập tức.
Tối đa 5.000 mã mỗi phiên — vượt quá thì các bản ghi cũ nhất bị loại ra. Cho công việc mới chỉ cần bấm “Phiên mới”: bạn sẽ có phòng và khóa mới.
Có. Ai đã quét mã QR trên máy tính của bạn đều ghi vào cùng một danh sách. Máy tính hiển thị có bao nhiêu điện thoại đang trực tuyến.
Sắp ra mắt
Muốn dùng sớm, có nhu cầu cụ thể hay chỉ muốn hỏi? Nhắn cho tôi qua Telegram.
Nhắn tin @nemilya