在PHP 7中,引入了两个新功能,以跨平台的方式生成加密安全的整数和字符串.
random_bytes() : 生成加密安全的伪随机字节.
random_int() : 生成加密安全的伪随机整数.
random_bytes()生成一个任意长度的加密随机字节串,适用于加密用途,例如生成盐,键或初始化向量时.
string random_bytes ( int $length )
长度 : 应以字节为单位返回的随机字符串的长度.
返回包含所请求的加密安全随机字节数的字符串.
如果找不到合适的随机来源,则会抛出异常.
如果给出了无效参数,将抛出 TypeError .
如果给出了无效的字节长度,则会抛出错误.
<?php $bytes = random_bytes(5); print(bin2hex($bytes)); ?>
它产生以下浏览器输出 :
54cc305593
random_int()生成适合在哪里使用的加密随机整数无偏见的结果至关重要.
int random_int ( int $min , int $max )
min : 要返回的最低值,必须 PHP_INT_MIN 或更高.
max - 最高要返回的值,必须小于或等于 PHP_INT_MAX .
返回加密安全随机整数,范围为min到max(包括).
如果找不到合适的随机来源,将抛出异常.
如果给出了无效参数,将抛出 TypeError .
如果max小于min,则会抛出错误.
<?php print(random_int(100, 999)); print(""); print(random_int(-1000, 0)); ?>
它产生以下浏览器输出 :
614 -882