Всем привет! В этом материале рассмотрим новые функции для генерации случайных чисел в PHP7 и их преимущества.

Новинки в PHP7. Часть 6.

Всем привет! В этом материале рассмотрим новые функции для генерации случайных чисел в PHP7 и их преимущества.

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

В PHP7 это исправили и добавили две новые функции для генерации случайных чисел.

  • random_bytes – генерирует случайные байты
  • random_int – генерирует случайные целые числа

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

  • Windows – CryptGenRandom
  • Linux – PHP getrandom(2)
  • Others – /dev/urandom

В случае ошибки или отсутствия данных функций, PHP выбросит исключение.

Использовать новые функции достаточно просто:

bin2hex(random_bytes(10));

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

random_int(1, 10);

Функция random_int принимает минимальное и максимальное число и формирует в указанном диапазоне случайное.

Итак, на этом все. Спасибо за внимание!