Ответ 1
В PHP 5.4, если mt_rand
автоматически высевается при первом использовании (источник PHP). начальное значение является функцией текущей метки времени, ПИД-процесса процесса PHP и значения, созданного внутренним PHP LCG. Я не проверял источник для предыдущих версий PHP, но документация подразумевает, что этот алгоритм сеяния использовался начиная с PHP 5.2. 1.
Алгоритм RNG за mt_rand
является Mersenne Twister. На самом деле не имеет смысла говорить о том, "насколько это плохо", потому что он явно задокументирован (а не на странице документов PHP, к сожалению), что он полностью непригоден для криптографических приложений. Если вам нужна криптопрочность, используйте задокументированный генератор криптопрочности.
Обновление: Вы также можете посмотреть этот вопрос на crypto.SE.