§

Kéo ảnh vào hoặc nhấp để chọn

Kéo ảnh vào hoặc nhấp để chọn PNG, JPG, GIF, BMP, WebP — hoặc dán từ clipboard
§

Quét bằng camera

Quyền truy cập camera chỉ được yêu cầu khi bật chế độ này. Chúng tôi không bao giờ tải lên hoặc ghi lại bất cứ thứ gì.
§

Nội dung đã giải mã

Tại Việt Nam, mã QR gắn liền với mọi giao dịch hàng ngày. Người dùng VietQR quét mã thanh toán tại quán cà phê, siêu thị và chợ; mã QR của VNeID và sổ sức khỏe điện tử được quét tại cổng kiểm tra và bệnh viện; hóa đơn điện tử Viettel và VNPT nhúng QR chứa URL tra cứu trên cổng thuế. Khi bạn nhận được một mã QR và cần kiểm tra xem nó dẫn đến đâu trước khi bấm vào — xác nhận URL trên poster là địa chỉ thật, đọc mật khẩu Wi-Fi mà router in dưới dạng QR, hay xem vCard trong badge hội nghị — công cụ này xử lý mọi định dạng mà các nguồn đó tạo ra. Dữ liệu ảnh và nội dung đã giải mã đều ở trong tab của bạn.

Trình đọc mã QR là gì?

QR là mã vạch ma trận hai chiều được định nghĩa bởi ISO/IEC 18004. Nó mã hóa văn bản, URL, thẻ liên hệ, thông tin xác thực Wi-Fi và các nội dung ngắn khác dưới dạng lưới các mô-đun vuông đen trắng, cùng với dữ liệu sửa lỗi Reed-Solomon để mã vẫn có thể giải mã sau khi bị hỏng một phần hoặc có logo phủ lên. Trình đọc mã QR thực hiện ngược lại: lấy ảnh của mã QR và khôi phục chuỗi nội dung gốc. Trình đọc này chạy quy trình giải mã trực tiếp trong trình duyệt của bạn bằng thư viện mã nguồn mở jsQR (khoảng 130 KB, giấy phép MIT). Ảnh bạn kéo vào, dán hoặc quét bằng camera không bao giờ rời khỏi tab. Không có bước tải lên nào. Mở DevTools trong khi giải mã và bảng Network sẽ im lặng — trang không thực hiện bất kỳ XHR, fetch hay beacon phân tích nào liên quan đến nội dung ảnh của bạn.

Quá trình giải mã QR hoạt động như thế nào?

Quá trình giải mã chạy hoàn toàn trên máy của bạn. Mỗi ảnh đi qua một quy trình cố định trước khi trả về văn bản nội dung:

  1. Tệp ảnh (PNG, JPG, WebP hoặc khung camera) được vẽ lên phần tử HTML <canvas> ngoài màn hình. Canvas API trả về dữ liệu pixel thô dưới dạng mảng byte RGBA.
  2. Thư viện jsQR chuyển đổi mảng pixel sang bitmap xám và quét tìm ba hình vuông mẫu finder đặc trưng ở các góc của mã QR.
  3. Sau khi xác định được các mẫu finder, bộ giải mã tính toán biến đổi phối cảnh và trích xuất toàn bộ lưới mô-đun, đọc mỗi ô là nhị phân 0 hoặc 1.
  4. Lưới mô-đun được phân tích theo spec QR: thông tin định dạng và phiên bản được đọc trước, sau đó các mô-đun dữ liệu được giải xen kẽ và áp dụng sửa lỗi Reed-Solomon.
  5. Các từ mã dữ liệu đã được sửa được giải mã theo chế độ phân đoạn (số, chữ và số, byte hoặc kanji), cho ra chuỗi nội dung gốc.
  6. Công cụ này sau đó phân tích nội dung bằng một tập nhỏ biểu thức chính quy để xác định loại nội dung (URL, thông tin xác thực Wi-Fi, vCard, v.v.) và hiển thị kết quả với nút hành động phù hợp.

Tại sao dùng trình đọc QR trên trình duyệt?

  • Dữ liệu ảnh không bao giờ rời khỏi thiết bị của bạn. Dán mã QR ẩn mật khẩu Wi-Fi, URL staging nội bộ hoặc vCard với số điện thoại cá nhân của ai đó, và nội dung đó ở lại trên máy tính của bạn. Các trình đọc QR khác chạy giải mã trên máy chủ từ xa và yêu cầu bạn tải ảnh lên trước — công cụ này thì không.
  • Sau khi trang được tải, quá trình giải mã hoạt động ngoại tuyến. Thư viện jsQR nằm trong tab của bạn. Bạn có thể ngắt kết nối Wi-Fi, kéo ảnh QR vào trang, và vẫn nhận được nội dung trả về — hữu ích trên máy bay, trong tầng hầm và ở bất kỳ nơi nào mạng doanh nghiệp chặn các máy quét bên thứ ba.
  • Nếu máy tính hoặc laptop của bạn có webcam, bạn có thể chỉ nó vào mã QR in ra và đọc mà không cần cài đặt ứng dụng hay mở khóa điện thoại. Luồng camera ở trong trình duyệt và dừng ngay khi giải mã thành công.
  • Trình đọc nhận dạng URL, chuỗi kết nối Wi-Fi, vCard, MeCard, mailto, SMS và nội dung địa lý, đồng thời hiển thị nút hành động phù hợp. Mở URL, sao chép mật khẩu Wi-Fi, lưu thẻ liên hệ — bất cứ điều gì mã QR thực sự chứa.

Ứng dụng phổ biến của trình đọc mã QR

Bất kỳ khi nào bạn cần xem mã QR thực sự chứa gì mà không cần chỉ điện thoại vào nó:

  • Gỡ lỗi mã bạn vừa tạo. Dán mã QR mà ứng dụng của bạn tạo ra (hoặc chụp màn hình từ Trình tạo mã QR bên cạnh) và xác nhận URL hoặc nội dung được mã hóa khớp với ý định trước khi gửi để in, đóng gói hoặc đăng poster.
  • Khôi phục thông tin xác thực Wi-Fi. Quét mã QR Wi-Fi từ trang cấu hình router, thẻ chào mừng khách sạn hoặc ảnh danh sách AirBnB và trình đọc trả về SSID, loại bảo mật và mật khẩu dưới dạng văn bản thuần bạn có thể sao chép sang thiết bị khác.
  • Kiểm tra và trợ năng. Giải mã mã QR trên tài liệu quét, nhãn sản phẩm, badge hội nghị hoặc ảnh chụp màn hình bài đăng mạng xã hội để trích xuất nội dung của chúng vào bảng tính, nhật ký tuân thủ hoặc phần mềm trợ năng — tiện lợi khi URL đích là tuyên bố thực sự đang được kiểm tra.

Giải mã mã QR thực tế trông như thế nào?

Hãy xét mã QR Wi-Fi được in trên cửa sổ quán cà phê. Ẩn sau mã, nội dung thô tuân theo sơ đồ WIFI: URI: WIFI:S:CafeGuest;T:WPA;P:espresso2026;H:false;;. Chụp ảnh mã, kéo ảnh vào vùng tải lên trên và quy trình bắt đầu: canvas đọc pixel, jsQR xác định ba mẫu finder ở góc, biến đổi phối cảnh làm thẳng lưới, Reed-Solomon sửa mọi hư hỏng do ánh sáng hoặc nén, và phân đoạn byte cho ra chuỗi URI. Trình đọc sau đó phát hiện tiền tố WIFI: và gán loại là Wi-Fi, phân tích tên mạng là CafeGuest, loại bảo mật là WPA và mật khẩu là espresso2026. Nút Sao chép đặt mật khẩu vào clipboard để bạn có thể dán vào bộ chọn mạng của hệ điều hành. Với mã QR URL thuần chứa https://tools.ultim8soft.com, cùng quy trình trả về nhãn loại URL và nút Mở điều hướng đến đích trong tab mới. Dù thế nào, thứ duy nhất xảy ra trên mạng là tải trang — giải mã là cục bộ.

Trình đọc mã QR này được xây dựng cho một công việc: hiển thị chính xác những gì mã QR mã hóa, trong trình duyệt của bạn, không có máy chủ ở giữa. Kéo ảnh vào, dán từ clipboard hoặc để webcam chạy, và nội dung đã giải mã cùng loại của nó xuất hiện trên màn hình trong chưa đầy một giây. Dữ liệu ảnh không được tải lên. Khung camera không được ghi lại. Nội dung đã giải mã không đi qua nhật ký của ai khác trên đường trả về cho bạn. Kết hợp với Trình tạo mã QR khi bạn cần xác nhận vòng lặp rằng những gì bạn mã hóa là những gì người khác sẽ thấy.

Ảnh có được tải lên máy chủ không?

Không. Ảnh được vẽ lên canvas HTML trong bộ nhớ và được giải mã hoàn toàn bởi JavaScript phía máy khách chạy trong tab của bạn. Không có pixel nào của ảnh được gửi đến máy chủ, ghi lại hoặc lưu trữ. Bạn có thể xác nhận điều này bằng cách mở DevTools và xem bảng Network trong khi kéo ảnh vào: không có XHR, không có fetch, không có beacon phân tích nào liên quan đến nội dung tệp.

Quét bằng camera hoạt động như thế nào?

Khi bạn bật chế độ camera, trình duyệt yêu cầu quyền truy cập camera thiết bị qua API getUserMedia chuẩn. Khung video được chụp vào canvas ngoài màn hình ở độ phân giải tối đa 640×480 và chuyển cho jsQR để giải mã. Mỗi khung bị loại bỏ ngay khi khung tiếp theo đến, và luồng camera dừng khi giải mã thành công lần đầu. Không có khung nào được ghi lại, không có khung nào được truyền đi, và lời nhắc quyền chỉ kích hoạt khi bạn bật chế độ — không phải khi tải trang.

Tại sao một số nội dung QR tự phát hiện là Wi-Fi hoặc vCard?

Nội dung QR cho thông tin xác thực Wi-Fi tuân theo định dạng WIFI:S:ssid;T:type;P:password;;, và vCard bắt đầu bằng BEGIN:VCARD. Trình đọc này nhận dạng các mẫu đó cùng với các tiền tố chuẩn khác (mailto:, geo:, smsto:, MECARD:, https://) và tự động gán loại nội dung để nút hành động khớp với những gì bạn thực sự muốn làm với nội dung đó.

Tại sao mã QR của tôi không được quét?

Nguyên nhân phổ biến: ảnh quá nhỏ hoặc độ phân giải thấp (~100×100 px là ngưỡng tối thiểu, 300×300+ quét đáng tin cậy hơn), mã bị hư hỏng nặng hoặc bị che một phần bởi logo không có đủ sửa lỗi, vùng yên tĩnh (đường viền trắng xung quanh các mô-đun) bị thiếu hoặc bị cắt, hoặc độ tương phản giữa mô-đun tối và sáng quá thấp. Đối với chế độ camera, cải thiện ánh sáng hoặc đưa mã lại gần ống kính hơn — jsQR cần giải quyết từng mô-đun riêng lẻ để khóa vào các mẫu finder.