Есть ли какая-либо функция php в наше время, которая генерирует абсолютно уникальную случайную строку? Или перефразируйте вопрос, как сделать абсолютно уникальную и случайную строку в php в наше время? Достаточно ли совместить пару случайных функций?PHP Абсолютно уникальная случайная строка
ответ
Просто, чтобы быть nitpicky ... Если он должен быть уникальным, то это не действительно «случайный». Случайность включает в себя возможность дублирования, поскольку создание случайного состояния не зависит от (или ссылается) предыдущих состояний.
Вы хотите создать GUID? PHP имеет несколько методов для генерации случайных идентификаторов:
Некоторые другие люди также found ways to do this, кажется.
Что касается вашей последней ссылки: я бы с осторожностью относился к ресурсу, который вызывает шифрование MD5 ... Вариант 4 совершенно ужасен, не следуя ни с версией 4, ни с 5-ю версиями GUID. На самом деле, это всего лишь хеш MD5, чтобы он выглядел как GUID. – Joey
@Joey: Определенно хорошая точка. Он был найден в Google и, похоже, является хорошей отправной точкой для дальнейших исследований. – David
@All: Насколько это хорошо, как генератор случайных строк для паролей? '$ str_password = str_shuffle ('abcefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 @ #% $ *'); \t \t return substr ($ str_password, 0, $ int_password_length); ' – verisimilitude
Возможный дубликат [Истинное генерирование случайных чисел] (http://stackoverflow.com/questions/3996338/true-random-number-generation) –
Это не столько связано с PHP, сколько с вопросом программа может генерировать по-настоящему случайную строку. Он не может (поскольку все случайные генераторы основаны на некотором алгоритме и поэтому детерминированы). Из-за этого все программные реализации случайных генераторов называются псевдослучайными (числовыми) генераторами (PRNG). Посмотрите ссылку @MichaelPetrotta для получения дополнительной информации. – Joris
Joris, есть криптографически безопасные PRNG. Вы можете безопасно их использовать. – Joey