Tôi đang tạo mã xác minh được sử dụng để kích hoạt tài khoản. Bạn đã có thể thấy điều này trước đây.Chuỗi ngẫu nhiên là mã xác minh tốt
Câu hỏi của tôi: nếu tôi là để tạo ra mã này với một công thức phức tạp như thế này:
md5(md5(time().'helloguys'.rand(0,9999)));
Là nó thực sự tốt hơn so với bất kỳ tạo ra chỉ là một chuỗi ngẫu nhiên của 32 ký tự và con số như gj3dI3OGwo5Enf...
?
Bạn có thể muốn xem xét base32 mã hóa kết quả của bạn để nó dễ dàng hơn cho người dùng của bạn để phân biệt giữa nhân vật trông giống như trong một số phông chữ. –
Ngoài việc tạo ra giá trị ngẫu nhiên (ví dụ: số xác minh), nếu 2 người dùng đăng ký và tạo chính xác mã xác minh tương tự, bạn có thể muốn xử lý trường hợp đó. Nếu tính duy nhất quan trọng, tôi nghĩ ngay cả mt_rand() cũng không đủ. –
Tôi nghĩ mã xác minh sẽ được lưu trữ trong cơ sở dữ liệu - đặt khóa duy nhất trên cột và trước khi chèn mã xác minh, hãy kiểm tra xem mã đã tồn tại trong cơ sở dữ liệu hay chưa. chưa được sử dụng trước đây. –