Sinh serial ngẫu nhiên hay tuần tự: chống đoán mã thế nào
Serial tuần tự dễ quản lý nhưng dễ đoán: biết một mã là suy ra được mã kế tiếp. Serial ngẫu nhiên khó đoán nhưng khó đối soát hơn. Bài này so hai cách sinh serial, giải thích vì sao độ dài và không gian mã quan trọng, và cách kết hợp để vừa khó đoán vừa dễ quản lý.

Mỗi con tem hoặc mỗi sản phẩm định danh riêng cần một số serial. Cách sinh serial nghe như chi tiết kỹ thuật nhỏ, nhưng nó quyết định một điều quan trọng: người ngoài có đoán được mã hợp lệ hay không.
Phân biệt serial với mã sản phẩm và số lô nằm ở bài GTIN, số lô và serial khác nhau thế nào.
Serial tuần tự
Mã tăng dần theo thứ tự: 000001, 000002, 000003. Cách này có ưu điểm rõ ràng:
- Dễ quản lý: biết dải từ đâu đến đâu, đếm được ngay có bao nhiêu mã.
- Dễ đối soát: thiếu mã nào trong dải là thấy.
- Dễ in: nhiều máy in hỗ trợ đánh số tăng dần sẵn.
Nhược điểm là dễ đoán. Ai có trong tay một con tem thật là biết mã kế tiếp. Người làm giả chỉ cần in các mã liền kề — và nếu các mã đó đã được kích hoạt, chúng sẽ quét ra hợp lệ.
Serial ngẫu nhiên
Mã được sinh ngẫu nhiên, không có quy luật giữa mã này và mã kế tiếp. Biết một mã không giúp đoán mã khác.
- Ưu điểm: khó đoán. Người làm giả phải có danh sách mã thật mới in được mã hợp lệ.
- Nhược điểm: khó đối soát bằng mắt, vì không nhìn thấy khoảng trống trong dải. Phải dựa vào hệ thống để đếm.
Không gian mã: yếu tố hay bị bỏ qua
Ngẫu nhiên chỉ khó đoán khi không gian mã đủ lớn so với số mã thật đang dùng. Nếu doanh nghiệp phát hành một triệu mã trong không gian chỉ có mười triệu khả năng, cứ mười lần đoán bừa là có một lần trúng mã thật.
Nguyên tắc: không gian mã nên lớn hơn số mã phát hành nhiều bậc. Mỗi ký tự thêm vào — nhất là khi dùng cả chữ và số — làm không gian tăng lên rất nhanh. Độ dài hợp lý phụ thuộc số mã phát hành và loại vật mang dữ liệu, vì mã quá dài làm khó in và khó quét.
Kết hợp: tiền tố tuần tự, phần sau ngẫu nhiên
Cách phổ biến để có cả hai ưu điểm:
- Phần đầu tuần tự hoặc có nghĩa — ví dụ mã dòng sản phẩm, năm, lô. Dùng để quản lý và đối soát theo nhóm.
- Phần sau ngẫu nhiên — đủ dài để không đoán được trong từng nhóm.
Người trong doanh nghiệp nhìn phần đầu biết mã thuộc nhóm nào. Người ngoài có một mã cũng không suy ra được mã khác cùng nhóm.
Ba lỗi khi sinh serial
- Dùng số ngẫu nhiên kém chất lượng. Một số cách sinh số "ngẫu nhiên" đơn giản thực ra có quy luật, đoán được nếu có đủ mẫu. Nên dùng bộ sinh số ngẫu nhiên đạt chuẩn bảo mật.
- Không kiểm tra trùng. Sinh ngẫu nhiên vẫn có xác suất trùng. Hệ thống phải kiểm tra mã mới chưa từng tồn tại trước khi phát hành.
- Dùng ký tự dễ nhầm. Chữ O và số 0, chữ I và số 1 gây lỗi khi người mua nhập tay. Nên loại các ký tự dễ nhầm khỏi bảng ký tự.
Serial khó đoán vẫn cần lớp bảo vệ khác
Serial ngẫu nhiên chặn được việc đoán mã. Nó không chặn được việc sao chép một mã thật đã có trong tay. Việc đó cần cơ chế phát hiện quét trùng — xem bài chống tái sử dụng mã.
Và danh sách mã chưa phát hành phải được bảo vệ. Serial ngẫu nhiên hoàn toàn vô dụng nếu người làm giả lấy được danh sách đó từ bên trong.
Câu hỏi thường gặp
Mã in trên tem có cần là serial không?
Chỉ khi cần định danh từng đơn vị. Định danh theo lô thì không cần serial riêng cho mỗi sản phẩm.
Có nên để nhà in tự sinh serial không?
Không nên. Doanh nghiệp hoặc hệ thống của doanh nghiệp nên sinh và giữ danh sách, nhà in chỉ in theo danh sách được giao.
Đổi cách sinh serial giữa chừng được không?
Được, nhưng phải giữ được dữ liệu cũ và phân biệt được mã theo cách cũ với mã theo cách mới.
Việc nên làm
Lấy hai con tem liền nhau trong một cuộn đang dùng và so hai mã. Nếu nhìn là thấy quy luật, mã đang dễ đoán. Đó là lúc hỏi nhà cung cấp về cách sinh serial và độ lớn không gian mã.
