设置“strong”参数为true时要小心。
如果您的系统熵不足,您的脚本将被阻塞,这可能会导致代码其他部分出现超时。
在我的例子中,最严重的症状是我的脚本在尝试读取/dev/random时被阻塞,并导致“MySQL has gone away”错误。
希望这能节省一些人在决定使用/dev/random熵时的麻烦
(PECL OAuth >= 1.0.0)
OAuthProvider::generateToken — 生成随机令牌
生成一个伪随机字节的字符串。
size
所需的令牌长度,以字节为单位。
strong
设置为true
表示将使用/dev/random
作为熵源,否则将使用非阻塞的/dev/urandom
。此参数在Windows上被忽略。
生成的令牌,作为一个字节的字符串。
示例 #1 OAuthProvider::generateToken() 示例
<?php
$p = new OAuthProvider();
$t = $p->generateToken(4);
echo strlen($t), PHP_EOL;
echo bin2hex($t), PHP_EOL;
?>
以上示例将输出类似以下内容
4 b6a82c27
注意:
当系统没有足够的随机数据可用时,此函数将使用内部PHP rand()实现来填充剩余的随机字节。
设置“strong”参数为true时要小心。
如果您的系统熵不足,您的脚本将被阻塞,这可能会导致代码其他部分出现超时。
在我的例子中,最严重的症状是我的脚本在尝试读取/dev/random时被阻塞,并导致“MySQL has gone away”错误。
希望这能节省一些人在决定使用/dev/random熵时的麻烦