伪随机数产生器CSPRNG

2018-10-31 09:18 更新

CSPRNG 即伪随机数产生器,作为一个工具,常用的算法有 MD5 或者 SHA1 等。

在 PHP7 中,引入了以下两个 CSPRNG 函数,通过跨平台方式生成加密安全的整数和字符串。

  • random_bytes() - 生成加密安全的伪随机字节。
  • random_int() - 生成加密安全的伪随机整数。

random_bytes()

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

语法

string random_bytes ( int $length )

参数

  • length - 应以字节为单位返回的随机字符串的长度。

返回值

  • 返回一个包含所请求的加密安全随机字节数的字符串。

错误/异常

  • 如果找不到适当的随机来源,将抛出异常。
  • 如果给出无效参数,将抛出 TypeError。
  • 如果给定了无效的字节长度,则会抛出错误。

示例

<?php
   $bytes = random_bytes(5);
   print(bin2hex($bytes));
?>

它产生以下浏览器输出:

54cc305593

random_int()

random_int()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
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号