Home  >  Article  >  Backend Development  >  Detailed explanation of pseudo-random number generator CSPRNG in PHP7

Detailed explanation of pseudo-random number generator CSPRNG in PHP7

autoload
autoloadOriginal
2021-03-19 10:56:252595browse

CSPRNG is a pseudo-random number generator. As a tool, commonly used algorithms include MD5 or SHA1, etc.

In PHP7, the following two CSPRNG functions are introduced to generate cryptographically secure integers and strings in a cross-platform way.

  • random_bytes() - Generate cryptographically secure pseudo-random bytes.

  • random_int() - Generate cryptographically secure pseudo-random integers.

1.random_bytes()

Random_bytes() is suitable for generating passwords, cryptographically random strings of any length, such as : Generate salt, key or initial vector.

Syntax:

string random_bytes ( int $length )
  • Parameters: length - Returns the byte length of the random string

  • Return value: Returns encryption A string with the requested number of safe random bytes.

Example:

<?php
$bytes = random_bytes(5);
print(bin2hex($bytes));//随机生成
?>

2.random_int()

It is very important that random_int() produces results suitable for use encrypted random integer.

Syntax:

int random_int ( int $min , int $max )
  • min - Returns the minimum value, it must be PHP_INT_MIN or a greater value

  • max - Returns the maximum value , it must be less than or equal to PHP_INT_MAX

Example:

<?php
print(random_int(100, 999));//随机生成100-999的数
echo "<br/>";
print(random_int(-1000, 0));//随机生成-100至0的数
?>

Recommended: php video tutorial php7 tutorial

The above is the detailed content of Detailed explanation of pseudo-random number generator CSPRNG in PHP7. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn