У меня проблемы с созданием случайной строки - PullRequest
1 голос
/ 15 декабря 2011

У меня есть небольшой скрипт, который используется для генерации случайной строки из 25 символов.Он работает примерно в 70% случаев, а в остальное время создает строки только 10.

$unique = substr(md5(microtime()),rand(0,26),25);

Моя цель - получить случайную строку из букв (цифр в нижнем регистре) без необходимости создания функции

Ответы [ 2 ]

3 голосов
/ 15 декабря 2011

Это потому, что вы обрезаете его до случайной длины с помощью rand (0, 26).

Попробуйте вместо этого:

$unique = substr(md5(microtime()), 0, 25);
0 голосов
/ 15 декабря 2011

Не используйте md5 (microtime ()). Вы можете подумать, что это более безопасно, чем md5 (rand ()), но это не так.

Приличное количество попыток и метод синхронизации (например, часы на вашем сайте) позволяют прогнозировать результат микротайма () с точностью до миллисекунды.

используйте md5 (rand ())

или если вы хотите, чтобы это было более безопасно, используйте md5 (microtime (). Rand ())

...