codecamp

伪随机数产生器CSPRNG

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
PHP7如何使用IntlChar
PHP7的期望是如何使用的?
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }