Tôi đang tìm kiếm một cách, đặc biệt trong PHP mà tôi sẽ được đảm bảo luôn nhận được khóa duy nhất.Tạo khóa duy nhất
Tôi đã làm như sau:
strtolower(substr(crypt(time()), 0, 7));
Nhưng tôi đã phát hiện ra rằng một lần trong một thời gian tôi kết thúc với một chìa khóa trùng lặp (hiếm, nhưng thường đủ).
Tôi cũng đã nghĩ đến việc thực hiện:
strtolower(substr(crypt(uniqid(rand(), true)), 0, 7));
Nhưng theo trang web PHP, uniqid() có thể, nếu uniqid() được gọi hai lần trong micro cùng, nó có thể tạo ra các phím tương tự. Tôi nghĩ rằng việc bổ sung rand() mà nó hiếm khi xảy ra, nhưng vẫn có thể.
Sau khi các dòng được đề cập ở trên, tôi cũng xóa các ký tự như L và O để nó ít gây nhầm lẫn cho người dùng. Điều này có thể là một phần của nguyên nhân cho các bản sao, nhưng vẫn cần thiết.
Một tùy chọn tôi có ý nghĩ là tạo trang web sẽ tạo khóa, lưu trữ khóa đó trong cơ sở dữ liệu, đảm bảo nó hoàn toàn độc đáo.
Bất kỳ suy nghĩ nào khác? Có bất kỳ trang web nào ở đó đã làm điều này có một số loại API hoặc chỉ trả lại khóa. Tôi tìm thấy http://userident.com nhưng tôi không chắc liệu các phím sẽ hoàn toàn độc đáo hay không.
Điều này cần chạy dưới nền mà không có bất kỳ thao tác nhập nào của người dùng.
Tại sao mật khẩu cần phải hoàn toàn độc đáo? –
Tôi cho rằng mật mã chỉ là vì bạn cần phải mã hóa giá trị, nó không liên quan gì đến việc tạo ra giá trị duy nhất, phải không? –
Xem thêm: [Chức năng PHP để tạo ra UUID v4] (http://stackoverflow.com/a/15875555/1338292). –