手册教程~

PHP 7 - CSPRNG 伪随机数产生器

PHP 7

CSPRNG(Cryptographically Secure Pseudo-Random Number Generator,伪随机数产生器)。

PHP 7 通过引入几个 CSPRNG 函数提供一种简单的机制来生成密码学上强壮的随机数。

  • random_bytes() - 加密生存被保护的伪随机字符串。

  • random_int() - 加密生存被保护的伪随机整数。

random_bytes()

random_bytes()生成适合加密使用的任意长度的加密随机字节字符串,例如在生成盐、密钥或初始化向量时。

语法

string random_bytes ( int $length )

参数

  • length - 随机字符串返回的字节数。

返回值

  • 返回一个字符串,接受一个int型入参代表返回结果的字节数。

错误/异常

  • 如果找不到适当的随机性来源,将抛出异常。

  • 如果给定的参数无效,则类型错误会被扔掉。

  • 如果给定的字节长度无效,将引发错误。

例子

<?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 。

返回值

  • 返回一个指定范围内的int型数字

错误/异常

  • 如果无法找到适当的随机性来源,则例外会被扔掉。

  • 如果给定的参数无效,则类型错误会被扔掉。

  • 如果max小于min,则错误会被扔掉。

例子

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

它产生以下浏览器输出–

614
-882