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