PHP中的幾個隨機數生成函數

PHP中的幾個隨機數生成函數

  1. rand() 基於 libc 的隨機種子發生器
  2. mt_rand() 基於 Mersenne Twister 算法返回隨機整數。它能夠產生隨機數值的平均速度比 libc 提供的 rand() 快四倍。
  3. random_int() 生成密碼安全的僞隨機整數
  4. random_bytes() 生成密碼安全的僞隨機字符串
  5. openssl_random_pseudo_bytes() 生成密碼安全的僞隨機字符串
3,4是在php7中引入的兩個CSPRNG函數,它能夠生成更加可靠,隨機性更高的隨機數種子

-php

在計算機中隨機數的來源因環境不一樣會產生差別

  • 在 Windows 系統,會使用 CryptGenRandom() 函數。
  • 在其餘平臺,會優先使用 arc4random_buf() 函數(限 BSD 衍生系統或帶 libbsd 的系統)。
  • 若以上兩點均不符合,會使用 Linux getrandom(2) 系統調用。
  • 若以上來源均不符合,會拋出 Error。
相關文章
相關標籤/搜索