Không chỉ không an toàn, nó còn không hoạt động.
mt_rand
lấy 2 tham số, giá trị tối thiểu và giá trị tối đa.
mt_rand('password', 15)
này chuyển 'password'
đến một int (0
), sau đó trả về một số ngẫu nhiên giữa 0
và 15
.
uniqid(mt_rand('password', 15), true)
sau đó này tạo ra một ID duy nhất, và prepends số ngẫu nhiên từ các bước trước để nó: tính toán một cái gì đó như thế này:
144ffb22886d58e1.82100749
chuỗi Đó là sau đó md5'd.
Như bạn có thể thấy, mã này vô dụng 100%. Mật khẩu ban đầu được chuyển đổi thành 0
và bị mất vĩnh viễn, vì vậy tất cả những gì bạn đang làm là băm các số ngẫu nhiên, điều đó là vô nghĩa. Bây giờ bạn có băm của bạn, không có cách nào để xác minh lại nó. Kể từ khi mật khẩu được chuyển đổi, bất cứ điều gì người dùng nhập không quan trọng.
Vì vậy, không, mã này không an toàn, không sử dụng.
Cá nhân, tôi sử dụng số phpass library. Nó an toàn và dễ sử dụng.
Nguồn
2012-07-09 18:29:46
Làm cách nào để xác minh mật khẩu khi mật khẩu được băm?Ngoài ra 'mt_rand' lấy ints làm tham số của nó, không phải là chuỗi. –
Ah, @Rocket những gì một câu hỏi ?? !!! – Engineer
Cá nhân tôi sử dụng [phpass] (http://www.openwall.com/phpass/). –