Mã QR là gì?
Mã QR (Quick Response) là một loại mã vạch hai chiều được phát minh bởi Denso Wave, một công ty con của Toyota, vào năm 1994. Ban đầu được thiết kế để theo dõi linh kiện ô tô trong dây chuyền sản xuất, mã QR nhanh chóng trở thành một trong những công nghệ được sử dụng rộng rãi nhất trên toàn thế giới. Khác với mã vạch truyền thống chỉ lưu trữ dữ liệu theo một chiều, mã QR có thể lưu trữ thông tin theo cả chiều ngang và chiều dọc, cho phép chứa lượng dữ liệu lớn hơn nhiều trong cùng một diện tích.
Một mã QR có thể chứa tới khoảng 3.000 ký tự chữ và số hoặc hơn 7.000 ký tự số thuần. Điều này có nghĩa là bạn có thể mã hóa một URL dài, thông tin liên lạc đầy đủ theo định dạng vCard, thông tin đăng nhập WiFi, hoặc thậm chí một đoạn văn bản ngắn. Tính linh hoạt này là lý do mã QR xuất hiện ở khắp nơi, từ bao bì sản phẩm, menu nhà hàng, đến vé máy bay và thẻ thanh toán điện tử.
Mã QR hoạt động như thế nào?
Khi bạn tạo một mã QR, dữ liệu đầu vào trải qua một quy trình mã hóa nhiều bước. Đầu tiên, dữ liệu được chuyển đổi thành chuỗi bit nhị phân theo chế độ mã hóa phù hợp (số, chữ-số, byte, hoặc Kanji). Sau đó, các bit sửa lỗi Reed-Solomon được thêm vào để đảm bảo mã có thể được quét chính xác ngay cả khi bị hư hại một phần.
Cấu trúc vật lý của mã QR bao gồm nhiều thành phần quan trọng. Ba hình vuông lớn ở ba góc (gọi là Finder Patterns) giúp máy quét xác định vị trí và hướng của mã. Các hình vuông nhỏ hơn (Alignment Patterns) giúp hiệu chỉnh biến dạng hình học. Các đường kẻ sọc (Timing Patterns) xác định tọa độ lưới của các module dữ liệu. Phần còn lại chứa dữ liệu thực tế và mã sửa lỗi, được sắp xếp theo một mẫu zigzag phức tạp.
Máy ảnh hoặc ứng dụng quét trên điện thoại sẽ chụp ảnh mã QR, phân tích các Finder Patterns để xác định phối cảnh, sau đó đọc từng module (điểm đen hoặc trắng) theo đúng thứ tự để tái tạo dữ liệu gốc. Nhờ mã sửa lỗi Reed-Solomon, quá trình này vẫn thành công ngay cả khi tới 30% diện tích mã bị che hoặc hư hại (ở mức sửa lỗi H).
Các loại mã QR và ứng dụng
Mã QR hỗ trợ nhiều định dạng dữ liệu khác nhau, mỗi loại phục vụ một mục đích riêng:
- URL: Loại phổ biến nhất. Khi quét, người dùng được chuyển hướng đến trang web được mã hóa. Rất hữu ích cho marketing, bao bì sản phẩm, danh thiếp, và poster quảng cáo.
- WiFi: Mã hóa tên mạng (SSID), mật khẩu, và loại mã hóa. Khi quét, điện thoại tự động kết nối WiFi mà không cần nhập mật khẩu thủ công. Lý tưởng cho quán cà phê, khách sạn, văn phòng.
- vCard (Danh bạ): Chứa thông tin liên hệ đầy đủ bao gồm tên, số điện thoại, email, địa chỉ, và trang web. Khi quét, danh bạ được tự động lưu vào điện thoại. Thay thế hoàn hảo cho danh thiếp giấy truyền thống.
- SMS: Tự động mở ứng dụng nhắn tin với số điện thoại và nội dung tin nhắn đã được điền sẵn. Hữu ích cho dịch vụ khách hàng và chiến dịch marketing.
- Email: Tương tự SMS nhưng mở ứng dụng email với địa chỉ người nhận, tiêu đề, và nội dung đã điền sẵn. Tiện lợi cho thu thập phản hồi và liên hệ.
Hướng dẫn kích thước và mức sửa lỗi
Mã QR có bốn mức sửa lỗi, mỗi mức xác định bao nhiêu phần trăm dữ liệu có thể bị hư hại mà mã vẫn đọc được:
- L (Low - 7%): Tạo mã nhỏ nhất, phù hợp cho màn hình kỹ thuật số và môi trường sạch sẽ. Chọn mức này khi bạn cần mã QR có kích thước tối thiểu và không lo về hư hại vật lý.
- M (Medium - 15%): Lựa chọn mặc định và cân bằng nhất. Phù hợp cho hầu hết mọi trường hợp sử dụng, từ tài liệu in ấn tiêu chuẩn đến màn hình hiển thị.
- Q (Quartile - 25%): Khuyên dùng cho tài liệu in ấn sẽ được sử dụng nhiều lần hoặc trong môi trường có thể bị trầy xước, bụi bẩn. Phù hợp cho menu nhà hàng, poster ngoài trời.
- H (High - 30%): Mức sửa lỗi cao nhất, cho phép chèn logo hoặc hình ảnh lên mã QR mà vẫn đọc được. Kích thước mã sẽ lớn nhất ở mức này.
Về kích thước vật lý khi in: mã QR nên có kích thước tối thiểu 2cm x 2cm (khoảng 0.8 inch). Đối với poster hoặc biển hiệu quét từ xa, áp dụng công thức: kích thước tối thiểu (cm) bằng khoảng cách quét (cm) chia 10. Ví dụ, nếu người dùng quét từ khoảng cách 1 mét, mã QR nên có kích thước ít nhất 10cm.
Thực hành tốt nhất khi thiết kế mã QR
- Giữ độ tương phản cao: Module tối trên nền sáng là tiêu chuẩn. Tránh màu nền tối với module sáng vì nhiều máy quét gặp khó khăn với kiểu đảo ngược này. Nếu muốn tùy chỉnh màu, đảm bảo tỷ lệ tương phản tối thiểu 4:1.
- Giữ vùng trống (Quiet Zone): Mỗi bên của mã QR cần ít nhất 4 module trắng để máy quét phân biệt mã với nền xung quanh. Công cụ của ZestLab tự động thêm vùng trống này.
- Kiểm tra trước khi triển khai: Luôn quét thử bằng ít nhất hai thiết bị khác nhau (iPhone và Android) và hai ứng dụng quét khác nhau. Kiểm tra cả trong điều kiện ánh sáng yếu.
- Sử dụng URL ngắn: URL càng dài, mã QR càng phức tạp và khó quét. Dùng dịch vụ rút gọn URL hoặc tạo redirect ngắn trên domain của bạn.
- Chọn định dạng phù hợp: Dùng SVG cho in ấn chất lượng cao (có thể phóng to vô hạn). Dùng PNG cho chia sẻ trực tuyến và nhúng vào tài liệu kỹ thuật số.
- Thêm nhãn gọi hành động: Đặt dòng chữ hướng dẫn như “Quét để xem menu” hoặc “Scan to connect WiFi” bên cạnh mã QR. Không phải ai cũng biết mã QR dùng để làm gì.
Câu hỏi thường gặp
Công cụ khác bạn có thể thích
Thêm công cụ trong Generators
Giới thiệu về Generators
Công cụ developer tự động hóa các phần lặp đi lặp lại của công việc phần mềm: format JSON, encode/decode Base64, decode JWT để xác minh claim của token, tạo UUID, format XML, diff cấu hình. Đây không phải tác vụ hào nhoáng, nhưng là các điểm nghẽn ngốn 10-15 phút nhiều lần mỗi ngày — cộng lại hàng giờ mỗi tuần. Chạy chúng trên tab trình duyệt sạch sẽ hơn vật lộn với phụ thuộc CLI hay extension IDE có thể gửi dữ liệu riêng tư của bạn cho bên thứ ba.
Vì sao nó quan trọng
Công cụ developer client-side nhanh về cơ bản quan trọng vì chúng được dùng với dữ liệu nhạy cảm. JWT token chứa danh tính người dùng. Payload Base64 có thể encode API key. JSON dump bao gồm bản ghi khách hàng. Nếu một 'công cụ developer' gửi input của bạn lên server để xử lý, bạn vừa rò rỉ production secret. Công cụ dev của ZestLab chạy 100% client-side không có network call nào sau khi load page — những gì bạn paste vẫn ở trong trình duyệt.
Riêng tư và an toàn
Tất cả công cụ developer ở đây chạy trong trình duyệt bằng JavaScript thuần. Không có 'decode server' hay 'format API' — JWT, JSON, payload encode của bạn được parse bởi code chạy trên laptop của bạn. Tự xác minh bằng DevTools trình duyệt → Network tab: bạn sẽ thấy không có request nào khi dùng bất kỳ công cụ nào. Đó là tiêu chuẩn chúng tôi giữ vì công cụ dev xử lý secret.
Thực hành tốt
- Không bao giờ paste JWT hay API token production vào BẤT KỲ công cụ online nào mà không xác minh chạy client-side (check tab Network)
- Dùng chế độ ẩn danh trình duyệt để decode một lần các payload nhạy cảm
- Bookmark công cụ bạn dùng hàng ngày — URL công cụ ZestLab ổn định, không cần tài khoản
- Khi format JSON có secret để team review, redact credential trước khi share output