Máy quét mã vạch đã nằm sẵn trong túi bạn

Điện thoại quét.
Máy tính nhận.
Qua đường hầm.

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.

  • 0 ứng dụng cần cài
  • 2 màn hình: điện thoại và máy tính
  • AES-256 từ camera đến màn hình
Không cần cài đặtKhông cần đăng kýMã hóa đầu cuốiiPhone & Android14 định dạng mã vạchChạy tốt cả khi mạng chập chờnXuất ra ExcelTự triển khai được

Video

Xem cách hoạt động

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.

Cách bắt đầu · 1:58

01 · Cách hoạt động

Ba bước, không một sợi cáp

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ị.

  1. 1

    Mở ScanTunnel trên máy tính

    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 đó.

  2. 2

    Hướng điện thoại vào mã QR

    Ứ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.

  3. 3

    Cứ thế mà quét

    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áy chủ chuyển dữ liệu của bạn nhưng không nhìn thấy nó

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

4607001771562 EAN-13 · văn bản gốc

☁️ Máy chủ thấy

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

💻 Máy tính thấy

4607001771562 giải mã tại chỗ
Cụ thể hoạt động thế nào?khóa, hàm băm và mô hình đe dọa trung thực

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ý.

HKDF-SHA256 → encKey + authToken

Máy chủ chỉ lưu hàm băm

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ã QR được vẽ trên màn hình của bạn

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.

Nói thật: bảo vệ khỏi điều gì và không bảo vệ khỏi điều gì

Bảo vệ

  • Ổ đĩa, bản sao lưu và nhật ký của máy chủ chỉ chứa dữ liệu đã mã hóa
  • Quản trị viên có quyền vào máy chủ cũng không đọc được giá trị
  • Biết mật khẩu của trang là chưa đủ — còn cần mã QR
  • CSRF: header riêng, Sec-Fetch-Site, chỉ JSON

Không bảo vệ

  • Máy chủ bị chiếm quyền và phát mã trang đã bị sửa — giới hạn chung của mọi E2E trên web
  • Ai đó chụp ảnh mã QR trên màn hình của bạn
  • Siêu dữ liệu: số lượng, thời điểm và kích thước các lần quét vẫn nhìn thấy được

03 · Tính năng

Làm cho công việc thật, không phải bản demo

Hai chế độ quét

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.

“Đã có trong danh sách ×2”

Đ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”.

Mất sóng? Không sao

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.

CSV, TXT, JSON

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.

Nhiều điện thoại

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.

Không mất gì cả

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ũ.

14 định dạng — từ tạp hóa đến logistics

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

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

Ở bất cứ đâu cần đưa mã vào máy tính

Kho hàng & kiểm kê

Đi dọc các kệ với điện thoại — trên laptop đã có sẵn bảng để đối chiếu.

Bán lẻ & nhận hàng

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.

Thư viện

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.

Sự kiện

Check-in bằng vé QR: ai đã đến hiện ngay trên màn hình ở quầy lễ tân.

IT & dịch vụ

Số sê-ri thiết bị và mã tài sản mà không cần gõ tay.

Cho chính bạn

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

Mã nguồn mở. Tự triển khai trong một buổi tối

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.

  • Một tiến trình, một tệp cơ sở dữ liệu — dễ sao lưu
  • Không CDN, không trình theo dõi bên thứ ba
  • Tách riêng dev và prod, rollback bằng một lệnh
Mã nguồn trên GitHub sắp có
~/scantunnel
# 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

Câu hỏi thường gặp

Không tìm thấy câu trả lời? Hỏi qua Telegram: @nemilya

Tôi có cần cài gì trên điện thoại không?

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.

Camera không mở — phải làm sao?

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://.

Có bị tạo ra cả đống mã trùng không?

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.

Dữ liệu của tôi được lưu ở đâu và bao lâu?

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 có thể quét bao nhiêu mã?

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ó thể kết nối nhiều điện thoại không?

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

Điện thoại của bạn đã là máy quét.
Chúng tôi đang hoàn thiện những chi tiết cuối cùng.

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