Cập nhật lần cuối:
Mã QR chứa được bao nhiêu thông tin? - Cơ chế đằng sau ô vuông đen trắng
Thanh toán ở cửa hàng, đi tàu điện, kết bạn trên LINE - ngày nào chúng ta cũng dùng mã QR, nhưng bạn có bao giờ tự hỏi ô vuông đen trắng ấy chứa được bao nhiêu thông tin không? Câu trả lời: tối đa khoảng 1.800 ký tự Kanji, tương đương khoảng 4 trang rưỡi giấy viết văn kẻ ô 400 chữ, tất cả được nén gọn trong một hình vuông bé xíu.
Dung lượng dữ liệu của mã QR
Các con số dưới đây là mức trần của phiên bản 40 - phiên bản lớn nhất - khi mức sửa lỗi được đặt ở mức yếu nhất (L), theo giá trị quy chuẩn tính đến năm 2026. Mã QR dùng trong thực tế được tạo ở những phiên bản nhỏ hơn nhiều, nên hầu như không bao giờ chạm tới các mức này.
| Loại dữ liệu | Dung lượng tối đa | Ví dụ dễ hình dung |
|---|---|---|
| Chỉ gồm chữ số | 7.089 chữ số | Khoảng 640 số điện thoại |
| Chữ cái và chữ số | 4.296 ký tự | Khoảng 15 bài đăng X (Twitter cũ) dài 280 ký tự |
| Nhị phân (8 bit) | 2.953 byte | Khoảng 3 KB dữ liệu |
| Kanji (Shift_JIS) | 1.817 ký tự | Khoảng 4,5 trang giấy viết văn kẻ ô |
Nếu chỉ gồm chữ số, một mã QR chứa được tới 7.089 chữ số, nhưng sang chữ Kanji thì chỉ còn 1.817 ký tự. Đúng như bài sự khác biệt giữa số ký tự và số byte đã giải thích: mỗi chữ Kanji tốn nhiều byte hơn, nên số chữ chứa được cũng ít đi tương ứng.
Phiên bản và kích thước của mã QR
Mã QR có khái niệm "phiên bản", đánh số từ 1 đến 40: phiên bản càng cao thì mã càng lớn và chứa được càng nhiều dữ liệu. Phiên bản 1 có 21 module mỗi cạnh, và mỗi bậc phiên bản cộng thêm 4 module, nên số module mỗi cạnh bằng 4 x số phiên bản + 17. Sức chứa trong bảng dưới đây là mức trần của chế độ chỉ gồm chữ số khi mức sửa lỗi được đặt ở mức yếu nhất (L).
| Phiên bản | Số module | Sức chứa tối đa (chữ số, mức L) | Tình huống thường dùng |
|---|---|---|---|
| 1 (nhỏ nhất) | 21 x 21 | 41 chữ số | URL ngắn |
| 5 | 37 x 37 | 255 chữ số | URL thông thường |
| 10 | 57 x 57 | 652 chữ số | Thông tin liên hệ trên danh thiếp |
| 20 | 97 x 97 | 2.061 chữ số | Văn bản dài |
| 40 (lớn nhất) | 177 x 177 | 7.089 chữ số | Dữ liệu lớn (hiếm khi dùng) |
Phiên bản 40 gồm 177 x 177 = 31.329 module đen trắng. Tuy vậy, trên thực tế gần như không ai dùng đến phiên bản này: dữ liệu càng nhiều thì mã QR càng dày đặc và phức tạp, camera điện thoại càng khó quét.
Bên trong những mã QR quen thuộc có gì?
Dưới đây là nội dung của những mã QR ta gặp hằng ngày, xếp theo mục đích sử dụng. Các dung lượng chỉ là mức ước lượng dựa trên độ dài URL và tham số quan sát được trong năm 2026, không phải giá trị mà các dịch vụ công bố như một quy cách kỹ thuật (với một số mục đích, quy cách hoàn toàn không được công khai).
| Mục đích | Thông tin bên trong | Dung lượng tham khảo |
|---|---|---|
| Kết bạn LINE/Zalo | URL trang cá nhân (khoảng 40 ký tự) | Khoảng 40 byte |
| Thanh toán QR | URL thanh toán + token | Khoảng 100-200 byte |
| URL trang web | Chuỗi URL | Khoảng 30-100 byte |
| Thông tin kết nối Wi-Fi | SSID + mật khẩu + phương thức mã hóa | Khoảng 50-150 byte |
| Danh thiếp (vCard) | Tên, điện thoại, email, địa chỉ | Khoảng 200-500 byte |
| Thẻ lên máy bay | Số hiệu chuyến bay, số ghế, thông tin hành khách | Khoảng 100-300 byte |
Hầu hết mã QR ta gặp hằng ngày chưa dùng đến 10% dung lượng tối đa. Mã kết bạn LINE chỉ khoảng 40 byte - vỏn vẹn 1,4% của mức trần 2.953 byte.
Khả năng sửa lỗi của mã QR
Mã QR có một đặc tính rất thú vị: dù bị bẩn hay bị che mất một phần, nó vẫn đọc được.
| Mức sửa lỗi | Tỷ lệ khôi phục được | Lượng dữ liệu chứa được ở cùng kích thước | Tình huống dùng |
|---|---|---|---|
| L (thấp) | Khoảng 7% | Nhiều nhất | Môi trường sạch (hiển thị trên màn hình) |
| M (trung bình) | Khoảng 15% | Ít hơn một chút | Ấn phẩm in thông thường |
| Q (khá cao) | Khoảng 25% | Ít hơn đáng kể | Môi trường dễ bám bẩn |
| H (cao) | Khoảng 30% | Ít nhất | Mã QR có gắn logo |
Các tỷ lệ này không phải là phần diện tích có thể bị che đi. Chúng cho biết trong toàn bộ các từ mã (codeword - đơn vị mà dữ liệu được chia thành, mỗi đơn vị 8 bit) thì khôi phục lại được bao nhiêu phần. Ở mức H, dữ liệu gốc vẫn khôi phục được khi khoảng ba trên mười từ mã không đọc nổi, và đó là lý do các doanh nghiệp đặt được logo vào chính giữa mã QR. Tuy vậy, nếu các mẫu định vị (ba ô vuông lớn ở các góc) bị hỏng thì máy quét không xác định được vị trí của mã ngay từ đầu, nên việc khôi phục còn chưa có cơ hội diễn ra - phần che được vì thế chỉ giới hạn ở vùng giữa của mã. Và vì mức sửa lỗi càng cao thì chỗ dành cho dữ liệu ở cùng một kích thước càng ít, nên đây là sự đánh đổi giữa khả năng chịu bẩn và lượng dữ liệu chứa được.
So sánh mã QR với mã vạch
| Hạng mục | Mã vạch (1 chiều) | Mã QR (2 chiều) |
|---|---|---|
| Dung lượng | Tối đa khoảng 20 ký tự chữ và số | 7.089 chữ số / 4.296 ký tự chữ và số |
| Chiều ghi dữ liệu | Chỉ chiều ngang | Cả ngang lẫn dọc |
| Góc quét | Chỉ chính diện | 360 độ, từ mọi hướng |
| Sửa lỗi | Không có | Có (tối đa 30%) |
| Hỗ trợ tiếng Nhật | Không | Có |
Mã vạch chỉ chứa được tối đa khoảng 20 ký tự chữ và số - vừa đủ cho mã định danh sản phẩm (mã EAN-13 gồm 13 chữ số). Mã QR chứa được 4.296 ký tự chữ và số, nên so trên cùng một cơ sở thì nó đựng được hơn 200 lần lượng đó, lại còn ghi trực tiếp được cả Kanji và Kana.
Chính khoảng cách ấy là lý do mã QR ra đời: mã vạch đã không còn đủ chỗ cho hiện trường nhà máy. Mã QR được công bố năm 1994 bởi DENSO (hiện nay mảng mã QR do DENSO WAVE phụ trách), và người thực hiện là một nhóm chỉ hai người do ông Masahiro Hara dẫn dắt. Tên gọi QR là viết tắt của Quick Response, bởi thiết kế nhắm tới tốc độ đọc chứ không chỉ sức chứa. Trái tim của điều đó là các mẫu định vị hình vuông ở ba góc: bề rộng các vạch đen trắng của chúng theo tỷ lệ 1 : 1 : 3 : 1 : 1, một khuôn hình gần như không xuất hiện ở đâu khác trong bản in. Nhờ vậy máy quét xác định được vị trí của mã bất kể quét từ hướng nào, và đó chính là điều làm nên khả năng đọc từ mọi góc.
Rủi ro bảo mật của mã QR
| Rủi ro | Thủ đoạn | Cách phòng tránh |
|---|---|---|
| Mã QR giả | Dán đè mã giả lên mã thật | Cảnh giác với nhãn dán bất thường |
| Lừa đảo (phishing) | Nhúng URL trang web giả vào mã QR | Kiểm tra URL sau khi quét |
| Phần mềm độc hại | URL tải ứng dụng độc hại | Không quét bừa mã QR không rõ nguồn gốc |
Mã QR rất tiện, nhưng có một điểm yếu: ta không nhìn thấy nội dung bên trong. Nếu URL được viết bằng chữ, ta còn có thể nhận ra trang web đáng ngờ; với mã QR thì phải quét rồi mới biết. Cũng giống câu chuyện về số ký tự mật khẩu và bảo mật, điều quan trọng là giữ được cân bằng giữa tiện lợi và an toàn.