开发学院

您的位置:首页>教程>正文

教程正文

PHP7 CSPRNG

PHP7 CSPRNG

  在PHP 7中,引入了以下两个新函数,以跨平台的方式生成加密安全的整数和字节。

  •   random_bytes() − 生成安全的加密伪随机字节。

  •   random_int() − 生成安全的加密伪随机整数.

random_bytes()

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

语法

string random_bytes ( int $length )

参数

  length − 指定要返回的随机字符串的长度(以字节为单位)。

返回值

  返回一个字符串,其中包含请求的加密安全随机字节数

错误和异常处理

  •   如果找不到适当的随机性来源,则会掷出Exception。

  •   如果给定的参数无效,将引发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.

返回值

  返回一个密码安全的随机整数,范围从最小到最大,包括最小值和最大值。

错误和异常处理

  •   如果找不到适当的随机性来源,则会掷出Exception。

  •   如果给定的参数无效,将引发TypeError。

  •   如果最大值小于最小值,将引发错误。

例子

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

  上述代码输出结果如下:

614
-882