Cú pháp:
Bạn có thể sẽ có những người sao chép các mã, do đó có nghĩa các mã nên dễ sao chép. 10^10 quá nhỏ, như Gamecat chỉ ra. kgiannakakis có một ý tưởng tốt hơn, nhưng điều đó gây ra một vấn đề khác: "1" trông rất giống "Tôi". "0", "C", "O" và "Q" cũng khá giống nhau. Đây không phải là một vấn đề lớn. Xác định alfabet an toàn: "ABDEFGHJKLMNPRSTUVXYZ" (bỏ COIQ) Từ nhận xét: tùy thuộc vào phông chữ bạn chọn, 5/S và U/V cũng có thể không rõ ràng về mặt hình ảnh; thay thế theo yêu cầu. Đây là mã 32 ký tự (5 bit). Mã gồm 10 ký tự là số 50 bit. Những người nên được khá tầm thường để tạo ra, sắp xếp, sao chép, so sánh vv Cơ hội được đoán là khoảng 0,63E-7
Vì mã quá dài nên nhớ, người dùng sẽ cần một điểm nghỉ khi sao chép chúng. Vì vậy, chia chuỗi thành hai hoặc ba phần và đảm bảo trường nhập khớp với phân tích này.
Ví dụ: AKG3L-45TEE => hai nhóm 5, và thậm chí nếu bạn không thể nhớ 5 ký tự thì việc tìm lại điểm mà bạn đã ngừng đọc trở nên dễ dàng hơn rất nhiều.
Làm thế nào để tạo ra chúng:
này khá đơn giản. Bạn không cần một thuật toán đặc biệt nhị phân để tạo ra các ứng cử viên. Bạn có thể tạo 10 số ngẫu nhiên trên mỗi mã cần thiết, mất 5 bit từ mỗi số (thường là các bit giữa là tốt nhất, ví dụ: (rand()/64) modulo 32). Sử dụng giá trị này [0-31] làm chỉ mục vào bảng chữ cái của bạn. Tạo một bảng cơ sở dữ liệu với chuỗi này làm khóa chính và chèn cho đến khi bảng có 63 triệu mục nhập. Bạn có thể muốn thêm ngày "được tạo vào" và "được đổi vào" vào bảng này.
+1 Điểm tốt về việc loại bỏ các giá trị khó hiểu –
Và có 32 biểu tượng có thể đơn giản hóa một số thứ quá –
Chữ cái 'S' và số năm '5' cũng là đồng cấu. – dwhall