Генерация случайных чисел в PHP

Для создания псевдослучайных и криптографически надёжных комбинаций в PHP не нужно использовать сторонние решения – в последних версиях реализованы функции, позволяющие писать связанные с ними программы, ничего не подключая.

Псевдослучайные комбинации rand($min, $max);

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

Начиная с четвёртой версии языка присутствует функция rand();. Максимальное значение для него зависит от ОС. В Windows – 32767, в Linux – 2147483647.

Истинно случайные комбинации random_int($min, $max);

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

В PHP присутствует random_int();, созданный для генерации псевдослучайных, но безопасных для использования в криптографии чисел.

Примеры использования

Псевдослучайное число от нуля до системного лимита

<?php
$random = rand();
$max = getrandmax();
echo $random.»<br>».$max; // Результат: псевдослучайное число, а на новой строке — максимальное значение, которое можно получить с помощью команды.

Безопасная комбинация

<?php
$random = random_int(PHP_INT_MIN, PHP_INT_MAX);
echo $random; // Результат: псевдослучайное число, безопасное для криптографической обработки.

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

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