Генерація криптографічно безпечних цілих чисел і рядків в PHP 7 — CSPRNG

343

Від автора: генерація числа PHP 7 (маються на увазі криптографічно безпечні цілі числа) і рядків у крос-трм вигляді здійснюється за допомогою двох нових функцій: random_bytes() і random_int().

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

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

random_bytes()

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

Синтаксис

string random_bytes ( int $length )

Параметри

length — довжина в байтах випадкової рядка, яка має бути повернута.

Значення, що повертаються

Повертає рядок, що містить вказану кількість криптографічно безпечних випадкових байтів.

Помилки / Виключення

Якщо відповідний джерело для генерації випадкових даних не знайдено, буде вибрано Виняток.

Якщо вказані неправильні параметри, буде введено TypeError.

Якщо вказана неправильна довжина байтів, буде виведено повідомлення про помилку.

Приклад

Цей код виводить у браузері наступне: 54cc305593

random_int()

random_int() генерує криптографічні випадкові цілі числа, які підходять для використання, коли об’єктивність результатів є критично важливою.

Синтаксис

int random_int ( int $min , int $max )

Параметри

min — мінімальне значення, яке може бути повернена, вона повинна бути більше або дорівнює PHP_INT_MIN.

max — максимальне значення, яке може бути повернуто, воно повинно бути менше або дорівнює PHP_INT_MAX.

Значення, що повертаються

Повертає криптографічно безпечне випадкове ціле число в діапазоні від min до max, включно.

Помилки / Виключення

Якщо відповідний джерело генерації випадкових даних не може бути знайдений, буде введено Виключення.

Якщо вказані неправильні параметри, буде введено TypeError.

Якщо max менше min, буде введено Error.

Приклад

Цей код виводить у браузері наступне:

614
-882