Tôi đang tìm cách tạo một hàm có thể tái sử dụng sẽ tạo ra một khóa ngẫu nhiên với các ký tự ACSII có thể in có độ dài được chọn (bất cứ nơi nào từ 2 đến 1000+). Tôi nghĩ rằng ký tự ASCII có thể in sẽ là 33-126. Khóa chính không cần phải hoàn toàn độc đáo, chỉ duy nhất nếu được tạo chính xác cùng một mili giây (vì vậy uniqid()
sẽ không hoạt động).Cách tốt nhất để tạo ra một khóa ngẫu nhiên trong PHP là gì?
Tôi nghĩ rằng sự kết hợp của chr()
và mt_rand()
có thể hoạt động.
Đây có phải là cách để đi hay phương pháp nào khác là phương pháp tốt nhất?
Chỉnh sửa:uniqid()
cũng sẽ không hoạt động do không có tham số chiều dài, nó chỉ là bất kỳ PHP nào cung cấp cho bạn.
Idea My: Đây là những gì tôi đã đưa ra:
function GenerateKey($length = 16) {
$key = '';
for($i = 0; $i < $length; $i ++) {
$key .= chr(mt_rand(33, 126));
}
return $key;
}
Có bất kỳ vấn đề với điều này?
Một chỉnh sửa khác: Hầu hết các câu hỏi khác giải quyết việc tạo mật khẩu. Tôi muốn có nhiều ký tự hơn và tôi không quan tâm đến số 1
so với l
. Tôi muốn số lượng chìa khóa tối đa có thể thực hiện được.
Lưu ý: khóa được tạo không nhất thiết phải bảo mật về mặt mã hóa.
máy phát điện số ngẫu nhiên làm độc đáo không thường _guarantee_, ngay cả khi “Được tạo ra ở chính xác cùng một phần nghìn giây.” Để đảm bảo tính duy nhất, bạn cần có khả năng phát hiện xung đột. – danorton
Đã thêm cảnh báo lớn về bảo mật, nếu không tôi sẽ phải từ chối mọi câu trả lời. Được cảnh báo rằng một số các chức năng trong các câu trả lời trả về nhị phân, những người khác trở lại hex, những người khác base64 vv vv. –