php функция генерации случайной строки

Как получить в PHP случайное число?

Получение случайного числа

Этот метод полезен для добавления случайных чисел в файлы CSS и JavaScript :

Это всего лишь один из возможных способов. Возвращаемое число будет принадлежать диапазону между двумя указанными числами.

Получение случайной строки

Если вам нужна PHP генерация случайного числа или буквенно-цифровой строки, попробуйте эту функцию:

Этот код выдает случайную строку, состоящую из 10 символов. Можно изменить 10 на необходимое число. Альтернативная версия функции:

Применение такое же, как и для предыдущей функции.

Еще более случайная строка

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

Применение способа получения в PHP случайного числа из диапазона:

Приведенный выше код выдает случайную строку, состоящую из 10 символов. Вы можете изменить 10 на нужное число.

Случайная удобочитаемая строка

В приведенном ниже примере мы генерируем случайную строку, которая включает в себя только буквы, чтобы сделать строку понятной:

Получение случайных элементов из массива

Есть много способов сделать это. Основная задача — вернуть из массива случайный набор элементов. Я использую приведенный ниже метод для отображения четырех случайных объявлений ( из массива, который включает в себя восемь объявлений ):

Этот код выдает строку, содержащую четыре случайных элемента, разделенных пробелом. Можно задать любое число. Просто не забудьте, что оно должно быть меньше, чем общее количество элементов массива. Также можно настроить выходную строку по своему желанию.

Случайные строки пароля

Вот пример использования функций для генерации паролей на основе массива случайных чисел PHP :

Существует множество способов генерации случайных паролей. Но этот позволяет контролировать надежность и длину пароля. Вот пример использования кода для получения в PHP случайного числа из диапазона :

Получение известной случайной строки

Обратите внимание, что этот PHP генератор случайных чисел не рекомендуется для применения на рабочих сайтах. Я рассмотрел его только потому, что он соответствует теме статьи, и может помочь в разработке различных идей тем, кто работает над подобными проектами.

Пожалуйста, оставьте ваши мнения по текущей теме статьи. За комментарии, подписки, отклики, дизлайки, лайки низкий вам поклон!

Источник

Генератор случайных строк в PHP

Я пытаюсь создать рандомизированную строку в PHP и не получаю абсолютно никакого вывода с этим:

Что я делаю неправильно?

Ответ 1

Чтобы ответить на этот вопрос конкретно, необходимо решить две проблемы:

$randstring не входит в область видимости, когда вы вызываете ее, используя echo.

В цикле символы не объединяются.

Вот фрагмент кода с исправлениями:

function generateRandomString($length = 10) <

Вывод случайной строки со следующим кодом:

// Echo случайной строки.

// По желанию вы можете задать необходимую длину строки.

Ответ 2

На этот вопрос есть много ответов, но ни один из них не использует криптографически безопасный генератор псевдослучайных чисел (CSPRNG).

Простой, безопасный и правильный ответ — использовать RandomLib и не изобретать велосипед.

Для тех из вас, кто настаивает на изобретении собственного решения, для этой цели предусмотрена в PHP 7.0.0 функция random_int() ; если вы все еще используете PHP 5.x, мы написали полифилл PHP 5, random_int(), чтобы вы могли использовать новый API еще до обновления до PHP 7.

Безопасное создание случайных целых чисел в PHP — нетривиальная задача. Вы всегда должны проконсультироваться со своими постоянными специалистами по криптографии StackExchange, прежде чем развертывать собственный алгоритм в производстве.

При наличии безопасного генератора целых чисел генерация случайной строки с помощью CSPRNG — это простое дело.

Создание безопасной случайной строки:

* Генерирует случайную строку, используя криптографически безопасный

* генератор псевдослучайных чисел (random_int)

* Эта функция сейчас использует подсказки типов (только для PHP 7+), но изначально она была написана для PHP 5.

* Для PHP 7, random_int является функцией ядра PHP.

* Для PHP 5.x, зависит от https://github.com/paragonie/random_compat

throw new \RangeException(«Длина должна быть больше 0!»);

$b = random_str(8, ‘abcdefghijklmnopqrstuvwxyz’);

Ответ 3

Это создает шестнадцатеричную строку длиной 20 символов:

$string = bin2hex(openssl_random_pseudo_bytes(10)); // 20 символов

В PHP 7 ( random_bytes() ):

14 characters, включая /=+

$string = substr(str_replace([‘+’, ‘/’, ‘=’], », base64_encode(random_bytes(32))), 0, 32); // 32 символа, без /=+

$string = bin2hex(random_bytes(10)); // 20 символов, только 0-9a-f

Ответ 4

Лучший способ реализовать эту функцию:

$keys = array_merge(range(0,9), range(‘a’, ‘z’));

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Источник

Генератор случайных строк PHP

Я пытаюсь создать рандомизированную строку в PHP, и я не получаю абсолютно никакого вывода с этим:

что я делаю не так?

30 ответов

чтобы ответить на этот вопрос конкретно, две проблемы:

вот фрагмент кода с исправлениями:

вывести случайную строку с вызовом ниже:

обратите внимание, что это создает предсказуемые случайные строки. Если вы хотите создать безопасную жетоны, посмотреть этот ответ.

еще один способ.

обновлено (теперь это генерирует любую длину строки):

на этот вопрос есть много ответов, но ни один из них не использует Криптографически Безопасный Генератор Псевдослучайных Чисел (CSPRNG).

простой, безопасный и правильный ответ-это использовать RandomLib и не изобретайте колесо.

для тех из вас, кто настаивает на изобретении собственного решения, PHP 7.0.0 предоставит random_int() для этой цели; если вы все еще на PHP 5.х, мы написали PHP 5 polyfill для random_int() таким образом, вы можете использовать новый API еще до обновления до PHP 7.

безопасное генерирование случайных целых чисел в PHP не тривиальная задача. Вы всегда должны проверять с ваши резидентные эксперты по криптографии StackExchange перед развертыванием домашнего алгоритма в производстве.

С безопасным целочисленным генератором на месте, генерация случайной строки с CSPRNG-это прогулка в парке.

Источник

Случайность в PHP7 – Повезет ли мне?

php функция генерации случайной строки. Смотреть фото php функция генерации случайной строки. Смотреть картинку php функция генерации случайной строки. Картинка про php функция генерации случайной строки. Фото php функция генерации случайной строки

В этой статье мы проанализируем проблемы, относящиеся к генерации случайных чисел, используемых в криптографии. PHP5 не обеспечивает простой механизм генерации криптостойких случайных чисел, в то время как PHP7 решает эту проблему путем введения CSPRNG-функций.

Что такое CSPRNG?

Цитируя википедию, криптографически стойкий генератор псевдослучайных чисел (англ. Cryptographically secure pseudorandom number generator, CSPRNG) — это генератор псевдослучайных чисел с определёнными свойствами, позволяющими использовать его в криптографии.

CSPRNG в PHP7

random_int возвращает целое число в заданном диапазоне:

За кадром

Простой тест

Хорошая система генерации случайных чисел определяется «качеством» генераций. Чтобы его проверить часто используется набор статистических тестов, позволяющих, не вникая в сложную тему статистики, сравнить известное эталонное поведение с результатом генератора и помочь в оценке его качества.

График будет выглядеть так (чем ближе к нулю, тем лучше):

php функция генерации случайной строки. Смотреть фото php функция генерации случайной строки. Смотреть картинку php функция генерации случайной строки. Картинка про php функция генерации случайной строки. Фото php функция генерации случайной строки

А что насчет PHP5?

Если вы хотите начать использовать хороший генератор случайных чисел и в то же время пока еще не готовы к переходу на PHP7, вы можете использовать библитеку random_compat от Paragon Initiative Enterprises. Она позволяет использовать random_bytes() и random_int() в PHP 5.х проектах.

Библиотеку можно установить через Composer:

Дополнительную информацию о том почему используется именно этот порядок вы можете прочитать в документации.

Пример генерации пароля с использованием библиотеки:

Краткий итог

Вы всегда должны применять криптографически стойкие генераторы псевдослучайных чисел, и random_compat является хорошим решением для этого.

Источник

Генерация случайных буквенно-цифровых строк в PHP

Позвольте мне начать этот пост, сказав, что почти ни одно событие не является случайным. Даже исход классического броска монеты теоретически можно было бы предсказать, если бы мы знали о влиянии каждого фактора, например, трения, гравитации и начальной силы.

То же самое применимо к генерации случайных чисел и буквенно-цифровых строк. Самое лучшее, на что мы можем надеяться, это генерировать числа и строки, которые не следуют шаблону и не могут быть практически предсказаны злоумышленником.

В этом уроке мы рассмотрим различные методы генерации случайных чисел и буквенно-цифровых строк в PHP. Некоторые из них будут криптографически безопасны, а другие предназначены только для случайного использования, например, назначение псевдослучайных имен файлов или создание URL-адресов и предложение имен пользователей.

Создание случайных чисел в PHP

Функция стала еще лучше в PHP 7.2.0, избавившись от ошибки модульного смещения. Это означает, что для некоторых конкретных значений ваша последовательность случайных чисел теперь будет немного лучше по сравнению со старыми версиями. Однако какой-то специализированный код может действительно полагаться на эту предвзятость. Если это так, вы можете использовать более старый алгоритм, вызвав функцию mt_srand() для задания начального числа для генератора случайных чисел и передачи MT_RAND_PHP в качестве значения второго параметра.

В приведенной выше последовательности у нас было 1267 два раза на выходе, но это не означает, что после этого вся последовательность начала повторяться. Маловероятно, чтобы такое же число повторялось так быстро в случайной последовательности, но это возможно!

Криптографически безопасные случайные целые числа

Случайные числа с плавающей точкой

Изменение начального числа генераторов случайных чисел

Важно помнить, что предоставление начального значения случайного числа за один раз до вызова rand() и mt_rand() не обязательно приведет к получению более качественных случайных чисел. Фактически, использование одного и того же начального случайного числа каждый раз даст вам одно и то же случайное число!

Изменение случайного числа полезно в ситуациях, когда вы хотите создать случайную, но воспроизводимую последовательность. Следующий фрагмент кода генерирует одну и ту же последовательность случайных чисел при повторном запуске.

Генерация случайных буквенно-цифровых строк в PHP

Существует множество способов генерации случайных буквенно-цифровых строк, и то, что вы используете, будет зависеть от ваших потребностей.

Создание перетасованных строк

Помните, что случайная строка, сгенерированная таким образом, не является криптографически безопасной. Тем не менее, строка по-прежнему будет довольно непредсказуемой для общего использования, например, для генерации случайных имен файлов или URL-адресов. Вот несколько примеров:

В обоих случаях ваш результат, скорее всего, будет разным. В первом случае мы просто перетасовали допустимую строку символов, а затем взяли первые 10 символов. Во втором случае мы добавили «video» в начале сгенерированной строки и «.mp4» в конце.

Этот способ генерации случайных буквенно-цифровых строк очень прост, но у него есть несколько проблем. Например, вы никогда не получите одинаковые символы в своей случайной строке дважды. Кроме того, длина строки случайного вывода может достигать только длины входной строки.

Создание случайных строк

Если проблемы, перечисленные выше, являются неприемлемыми, вы можете посмотреть на некоторые другие реализации. Следующий код поможет решить эти проблемы.

Создание случайных шестнадцатеричных строк

Ниже приведен пример вывода, возвращаемого этими функциями:

Как вы можете видеть, генерация случайных и уникальных шестнадцатеричных строк длиной до 40 символов очень проста в PHP.

Генерация криптографически безопасных случайных строк

Заключительные мысли

В этом уроке мы рассмотрели генерацию случайных чисел и буквенно-цифровых строк в PHP. Генерация случайных чисел может быть полезна в самых разных ситуациях, например, в играх, в которых вы должны порождать вражеских игроков или произвольно давать пользователям некоторые подсказки о письмах, чтобы они могли сформировать целое слово.

Подобно случайным числам, генерация случайных буквенно-цифровых строк также может быть весьма полезной во многих случаях. С помощью str_shuffle() вы можете выбрать, какой набор символов появится в ваших случайных строках. С помощью sha1() и md5() вы можете легко генерировать случайные шестнадцатеричные последовательности, а с помощью random_bytes() вы можете генерировать криптографически защищенные строки. Это позволит вам генерировать осмысленные, но рандомизированные имена файлов и имена пользователей, которые трудно подобрать.

Надеюсь, вам понравился этот урок. Если у вас есть какие-либо вопросы, не стесняйтесь задавать их в комментариях.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *