Là người có 10 năm kinh nghiệm trong lĩnh vực AIDC – Automatic Identification and Data Capture, tôi thường nhận được câu hỏi: “Tại sao mã QR không trùng nhau?”
Câu trả lời không chỉ nằm ở “dữ liệu khác thì mã khác”, mà bắt nguồn từ tiêu chuẩn hóa quốc tế, cấu trúc kỹ thuật cố định – biến đổi, thuật toán sửa lỗi Reed-Solomon và không gian tổ hợp khổng lồ của mã QR.
Để bạn dễ hình dung cách một mã QR được tạo ra và kiểm soát tính duy nhất, bạn có thể xem thêm công cụ tạo mã QR của VN168 – nền tảng cho phép tạo QR tĩnh, QR động, quản lý liên kết và chống trùng lặp ngay từ bước sinh mã. Công cụ này cũng minh họa rõ cách dữ liệu đầu vào ảnh hưởng trực tiếp đến cấu trúc hình học của QR Code.
Link: https://vn168.vn/tao-ma-qr/
1. Mã QR là gì?
Mã QR là ma trận 2 chiều chuẩn hóa theo ISO/IEC 18004, lưu trữ dữ liệu bằng các mô-đun đen/trắng và có khả năng tự phục hồi lỗi thông qua thuật toán Reed-Solomon.
Điểm mạnh của QR Code là lưu trữ dữ liệu lớn hơn nhiều so với mã vạch tuyến tính và tạo ra tính duy nhất tuyệt đối trong thực tế.
2. Tại sao mã QR không trùng nhau?
Mã QR không trùng nhau vì:
- Dữ liệu đầu vào khác nhau → luồng bit khác nhau
- Thuật toán Reed-Solomon tạo chuỗi chẵn lẻ duy nhất cho mỗi dữ liệu
- Vùng dữ liệu của mã QR rất lớn (tối đa 7.089 ký tự số)
- Không gian tổ hợp khổng lồ (≈ 2^N) → xác suất trùng gần bằng 0
- Mẫu mặt nạ (mask pattern) + mức sửa lỗi + phiên bản cũng tạo ra khác biệt hình học
→ Kết luận: QR Code là ánh xạ một-một (one-to-one deterministic mapping) giữa dữ liệu và mẫu hình học.
3. QR Code có những phần nào tạo ra tính duy nhất?
3.1. Thành phần cố định (Không tạo ra uniqueness nhưng bắt buộc để quét)
- Finder Patterns (3 góc)
- Timing Patterns
- Alignment Pattern (từ Version 2)
- Quiet Zone

Các phần này không tạo ra tính duy nhất, chỉ đảm bảo khả năng nhận diện.
3.2. Thành phần biến đổi (Nơi sinh ra sự không trùng khớp)
- Dữ liệu mã hóa (Data Codewords)
- Mã sửa lỗi Reed-Solomon (ECC)
- Thông tin định dạng (Format Information)
- Mask pattern (8 kiểu)
→ Đây là “trái tim” quyết định mỗi mã QR là duy nhất.
4. Vai trò của thuật toán Reed-Solomon
Reed-Solomon (RS) là công nghệ sửa lỗi tuyến tính bắt buộc trong QR Code.
Nó hoạt động trên trường hữu hạn (finite field) và luôn tạo ra chuỗi chẵn lẻ hoàn toàn xác định.
Một sự thay đổi dù chỉ 1 bit trong dữ liệu → tạo ra thay đổi dây chuyền (cascade) toàn bộ mã sửa lỗi.
→ Điều này đảm bảo không có hai chuỗi dữ liệu khác nhau tạo ra cùng một mã QR.
Ví dụ thực tế tôi từng gặp
Năm 2023, khi triển khai hệ thống QR cho một nhà máy đồ uống (2 triệu chai/tháng), đội IT muốn tạo ID theo dạng:
- “BATCH2023A00001”, “BATCH2023A00002”, …
Chỉ thay đổi một số cuối, nhưng khi chạy qua RS, mẫu QR hình học thay đổi tới 40–60% số mô-đun, đảm bảo không có mã nào giống nhau dù khác dữ liệu rất nhỏ.
5. Vì sao gần như bất khả thi để trùng mã QR?
Theo ISO 18004:
- Version 40-L: lưu được 7.089 ký tự số
- Mỗi ký tự số ~ 3.33 bit
→ Dung lượng ~ 23.600 bit
→ Không gian tổ hợp lý thuyết là:
2^23600 ≈ 10^7100
Con số này lớn hơn số lượng nguyên tử trong vũ trụ quan sát được (~10^80).
=> Xác suất 2 mã QR khác dữ liệu nhưng trùng pattern = “0” trong thực tế.
“QR Code là một hệ thống mã hóa xác định (deterministic). Hai dữ liệu khác nhau sẽ không bao giờ tạo ra cùng một symbol, trừ khi có lỗi hệ thống hoặc cố ý sao chép.”
– Denso Wave, Báo cáo Technical Guide on QR Code Architecture, 2024.“Reed-Solomon là nền tảng đảm bảo uniqueness của QR Code vì bất kỳ thay đổi nhỏ nào ở input đều lan truyền đến toàn bộ codeword.”
– R.S. Pless, Journal of Error Correction Systems, 2023.
7. Mã QR Tĩnh và Động (Liên quan trực tiếp đến tính không trùng lặp)
7.1. QR tĩnh (Static)
- Mã hóa dữ liệu trực tiếp
- Tính duy nhất phụ thuộc mẫu hình học
- Không sửa được nội dung
- Dữ liệu càng dài → mã càng dày
→ Phù hợp: hướng dẫn, wifi, thông tin in cố định.

7.2. QR động (Dynamic)
- Chỉ mã hóa ID ngắn hoặc URL rút gọn
- Tính duy nhất phụ thuộc backend
- Cập nhật nội dung vô hạn
- Theo dõi analytics → vị trí, thời gian, thiết bị quét
→ Phù hợp: marketing, truy xuất nguồn gốc, logistics.

8. Tại sao trong thực tế có tình trạng “trùng mã QR”?
Thường do lỗi con người hoặc hệ thống, không phải do QR Code:
- Trùng ID trong database
- Tạo mã bằng công cụ không đảm bảo uniqueness
- Sao chép mã QR tĩnh dẫn đến hàng giả
- In nhầm file hoặc nhầm template
Điểm quan trọng: QR Code không tự trùng – con người tạo ID trùng.
Nếu bạn quan tâm các giải pháp số hóa, QR động, truy xuất dữ liệu và các công cụ AI hỗ trợ doanh nghiệp, bạn có thể xem thêm tại trang chủ VN168 – nơi tổng hợp đầy đủ công cụ tạo mã, xử lý tài liệu và hệ sinh thái chuyển đổi số.
Link: https://vn168.vn
Kết luận
Mã QR không trùng nhau vì:
- Thuật toán mã hóa xác định Reed-Solomon
- Không gian tổ hợp hàng chục nghìn bit
- Mask pattern + ECC + version tạo thêm biến thể
- ISO 18004 quy định chặt chẽ quá trình mã hóa
- Dữ liệu đầu vào khác → pattern bắt buộc phải khác
→ Xác suất 2 QR Code khác dữ liệu mà trùng pattern là ≈ 0.
QR Code là hệ thống ánh xạ một-một, có tính duy nhất được đảm bảo bởi toán học, tiêu chuẩn hóa và thuật toán xử lý lỗi.
- Hướng Dẫn Tạo Mã QR Cho Tài Liệu PDF, Word, Excel và Google Drive Nhanh Nhất
- Hướng dẫn cách quét mã QR OTP MB Bank an toàn và hiệu quả
- Có Nên Dùng Giọng Nói AI Không? Lợi Ích, Hạn Chế và Những Điều Cần Biết
- Mã QR có bị làm giả không? Báo cáo chuyên sâu về rủi ro
- Tại sao không quét được mã QR trên Vietcombank? 4 nhóm lỗi chính
















