Я нашел это openssl_random_pseudo_bytes функции от php.net.
function generate_password($length = 24) {
if(function_exists('openssl_random_pseudo_bytes')) {
$password = base64_encode(openssl_random_pseudo_bytes($length, $strong));
if($strong == TRUE)
return substr($password, 0, $length); //base64 is about 33% longer, so we need to truncate the result
}
# fallback to mt_rand if php < 5.3 or no openssl available
$characters = '0123456789';
$characters .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/+';
$charactersLength = strlen($characters)-1;
$password = '';
# select some random characters
for ($i = 0; $i < $length; $i++) {
$password .= $characters[mt_rand(0, $charactersLength)];
}
return $password;
}
Но я хочу быть уверен, что генерируемое значение повторяется или нет?Я ищу результат, который нельзя повторить.
Мне сказали, что значение из mt_rand()
равно , а не повторяется?но случайное число должно быть повторяемым, как само собой объяснимо - mt_ rand , не так ли?
РЕДАКТИРОВАТЬ:
Например, я только что проверил, и он сгенерировал W8hhkS+ngIl7DxxFDxEx6gSn
.но если в будущем снова будет генерироваться то же значение, то оно будет повторяемым .