設定「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 熵的人省去一些麻煩