Обучение/Помощь новичкам | генерация токена
Тема закрыта by
NESCOKE
Причина: 8 пост
Причина: 8 пост
подскажите пожалуйста, как генерировать токен так, что бы он не повторялся?
То есть допустим я с генерировал токен:
Но ведь рандом имеет шанс повторения такого же значения, которое сгенерировал не давно.. Как исключить этот шанс?
________
посл. ред. 09.09.2017 в 01:28; всего 1 раз(а); by Hooligan
То есть допустим я с генерировал токен:
$token = round(1,99999999999999999999);
print $token;
Но ведь рандом имеет шанс повторения такого же значения, которое сгенерировал не давно.. Как исключить этот шанс?
________
посл. ред. 09.09.2017 в 01:28; всего 1 раз(а); by Hooligan
Hooligan , $token = round(1,99999999999999999999) . time();
Avenax (09.09.2017 в 01:33)
Hooligan , $token = round(1,99999999999999999999) . time();
Hooligan , $token = round(1,99999999999999999999) . time();
Он точно не повторится?
Hooligan (09.09.2017 в 01:36)
Он точно не повторится?
Он точно не повторится?
ну если время на земле не остановится
Hooligan , $token = base64_encode(openssl_random_pseudo_bytes(32));
на такой
на такой
Avenax (09.09.2017 в 01:40)
Hooligan , $token = base64_encode(openssl_random_pseudo_bytes(32));
на такой
Hooligan , $token = base64_encode(openssl_random_pseudo_bytes(32));
на такой
Воо, это то что нужно, пасибо)
Avenax , я как раз base64 и искал, где то увидел, а где не запомнил, вот и думал как же мля сделать то)))
Кароче не работает openssl_random_pseudo_bytes() https://habrahabr.ru/post/277779/
По этому нашел другой вариант, малоли кому пригодиться..
По этому нашел другой вариант, малоли кому пригодиться..
<?
//функция генерирует случайное значение (не повторяется)
function random_string($length) {
$key = '';
$keys = array_merge(range(0, 9), range('a', 'z'));
for ($i = 0; $i < $length; $i++) {
$key .= $keys[array_rand($keys)];
}
return $key;
}
// использовать так, 50 - это длинна уникального ключа, можно менять хоть на 10, хоть на 100..
$token = random_string(50);
echo $token;
// или так, кому что именно нужно)
echo random_string(50);
?>