PHP 7 - CSPRNG
В PHP 7 представлены две новые функции для генерации криптографически безопасных целых чисел и строк кроссплатформенным способом.
random_bytes() - Генерирует криптографически безопасные псевдослучайные байты.
random_int() - Генерирует криптографически безопасные псевдослучайные целые числа.
random_bytes ()
random_bytes () генерирует строку произвольной длины криптографических случайных байтов, которые подходят для криптографического использования, например, при генерации солей, ключей или векторов инициализации.
Синтаксис
string random_bytes ( int $length )
Параметры
length - Длина возвращаемой случайной строки в байтах.
Возвращаемые значения
Возвращает строку, содержащую запрошенное количество криптографически безопасных случайных байтов.
Ошибки / исключения
Если соответствующий источник случайности не может быть найден, будет сгенерировано исключение.
Если указаны недопустимые параметры, 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 до max включительно.
Ошибки / исключения
Если соответствующий источник случайности не может быть найден, Exception будет брошен.
Если указаны недопустимые параметры, TypeError будет брошен.
Если max меньше min, Error будет брошен.
пример
<?php
print(random_int(100, 999));
print("");
print(random_int(-1000, 0));
?>
Он производит следующий вывод браузера -
614
-882