PHP中的幾個隨機數生成函數
PHP中的幾個隨機數生成函數
- rand() 基於 libc 的隨機種子發生器
- mt_rand() 基於 Mersenne Twister 算法返回隨機整數。它能夠產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。
- random_int() 生成密碼安全的僞隨機整數
- random_bytes() 生成密碼安全的僞隨機字符串
- openssl_random_pseudo_bytes() 生成密碼安全的僞隨機字符串
3,4是在php7中引入的兩個CSPRNG函數,它能夠生成更加可靠,隨機性更高的隨機數種子
-php
在計算機中隨機數的來源因環境不一樣會產生差別
- 在 Windows 系統,會使用 CryptGenRandom() 函數。
- 在其餘平臺,會優先使用 arc4random_buf() 函數(限 BSD 衍生系統或帶 libbsd 的系統)。
- 若以上兩點均不符合,會使用 Linux getrandom(2) 系統調用。
- 若以上來源均不符合,會拋出 Error。
歡迎關注本站公眾號,獲取更多信息