2011-12-15 3 views
1

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

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

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

+0

лишь 10 вы имеете в виду только или что-то еще 10 символов ? –

ответ

3

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

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

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

Спасибо. Это здорово! – Tiny

0

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

С достаточным количеством попыток и методом синхронизации (например, часы на вашем сайте) можно предсказать результат microtime() на миллисекунду.

использование md5 (рандов())

или если вы хотите, чтобы это было более безопасно использовать md5 (микропоры(). Рандов())

+0

Или он мог использовать встроенную функцию uniq_id() :) –

Смежные вопросы