在将 'strong' 参数设置为 true 时要小心。
如果您的系统没有足够的熵,您的脚本将被阻塞,这会导致代码的其他部分出现超时。
在我的案例中,最严重的症状是当我的脚本尝试从 /dev/random 读取时被阻塞,并导致 'MySQL has gone away' 错误。
希望这能帮助人们在决定使用 /dev/random 熵时避免麻烦。
(PECL OAuth >= 1.0.0)
OAuthProvider::generateToken — 生成随机令牌
生成一个 string 类型的伪随机字节。
size
所需的令牌长度(以字节为单位)。
strong
设置为 true
表示将使用 /dev/random
作为熵源,否则将使用非阻塞 /dev/urandom
。此参数在 Windows 上被忽略。
生成的令牌,为 string 类型的字节。
范例 #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 熵时避免麻烦。