Учебники

PHP 7 — CSPRNG

В PHP 7 следующие две новые функции введены для генерации криптографически безопасных целых чисел и строк кросс-платформенным способом.

  • random_bytes () — генерирует криптографически защищенные псевдослучайные байты.

  • random_int () — генерирует криптографически безопасные псевдослучайные целые числа.

random_bytes () — генерирует криптографически защищенные псевдослучайные байты.

random_int () — генерирует криптографически безопасные псевдослучайные целые числа.

random_bytes ()

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

Синтаксис

string random_bytes ( int $length )

параметры

  • длина — длина случайной строки, которая должна быть возвращена в байтах.

длина — длина случайной строки, которая должна быть возвращена в байтах.

Возвращаемые значения

  • Возвращает строку, содержащую запрошенное количество криптографически безопасных случайных байтов.

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

Исключения Ошибки /

  • Если соответствующий источник случайности не может быть найден, будет выдано исключение.

  • Если заданы недопустимые параметры, выдается ошибка TypeError .

  • Если задана недопустимая длина байтов, выдается ошибка.

Если соответствующий источник случайности не может быть найден, будет выдано исключение.

Если заданы недопустимые параметры, выдается ошибка TypeError .

Если задана недопустимая длина байтов, выдается ошибка.

пример

<?php
   $bytes = random_bytes(5);
   print(bin2hex($bytes));
?>

Это производит следующий вывод браузера —

54cc305593

random_int ()

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

Синтаксис

int random_int ( int $min , int $max )

параметры

  • min — минимальное возвращаемое значение, которое должно быть PHP_INT_MIN или выше.

  • max — максимальное возвращаемое значение, которое должно быть меньше или равно PHP_INT_MAX .

min — минимальное возвращаемое значение, которое должно быть PHP_INT_MIN или выше.

max — максимальное возвращаемое значение, которое должно быть меньше или равно PHP_INT_MAX .

Возвращаемые значения

  • Возвращает криптографически безопасное случайное целое число в диапазоне от минимального до максимального включительно.

Возвращает криптографически безопасное случайное целое число в диапазоне от минимального до максимального включительно.

Ошибки / Исключения

  • Если соответствующий источник случайности не может быть найден, будет выдано исключение .

  • Если заданы недопустимые параметры, выдается ошибка TypeError .

  • Если max меньше min, выдается ошибка .

Если соответствующий источник случайности не может быть найден, будет выдано исключение .

Если заданы недопустимые параметры, выдается ошибка TypeError .

Если max меньше min, выдается ошибка .

пример

<?php
   print(random_int(100, 999));
   print("");
   print(random_int(-1000, 0));
?>

Это производит следующий вывод браузера —