(PHP 5 >= 5.3.0, PHP 7, PHP 8)
openssl_random_pseudo_bytes — 生成一个伪随机字节串
$length
, bool &$crypto_strong
= ?
) : string
生成一个伪随机字节串 string ,字节数由 length
参数指定。
通过 crypto_strong
参数可以表示在生成随机字节的过程中是否使用了强加密算法。返回值为false
的情况很少见,但已损坏或老化的有些系统上会出现。
length
所需字节串的长度,必须为正整数。PHP会试着将该参数转换为非空整数来使用它。
crypto_strong
如果传递到该函数中,将会保存为一个 boolean 值来表明是否使用了“强加密”,如果被用于GPG和密码之类的将返回true
, 否则返回 false
成功,返回生成的字节串 string , 或者在失败时返回 false
.
示例 #1 openssl_random_pseudo_bytes() 范例:
<?php
for ($i = -1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);
echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
var_dump($hex);
var_dump($cstrong);
echo PHP_EOL;
}
?>
以上例程的输出类似于:
Lengths: Bytes: -1 and Hex: 0 string(0) "" NULL Lengths: Bytes: 0 and Hex: 0 string(0) "" NULL Lengths: Bytes: 1 and Hex: 2 string(2) "42" bool(true) Lengths: Bytes: 2 and Hex: 4 string(4) "dc6e" bool(true) Lengths: Bytes: 3 and Hex: 6 string(6) "288591" bool(true) Lengths: Bytes: 4 and Hex: 8 string(8) "ab86d144" bool(true)