產生一個偽隨機位元組串

openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

openssl_random_pseudo_bytes產生一個偽隨機位元組串

說明

openssl_random_pseudo_bytes(int $length, bool &$crypto_strong = ?): string

產生一個偽隨機位元組串 string ,位元組數由 length 參數指定。

通過 crypto_strong 參數可以表示在產生隨機位元組的過程中是否使用了強加密演算法。返回值為false的情況很少見,但已損壞或老化的有些系統上會出現。

參數

length

所需位元組串的長度,必須為正整數。PHP會試著將該參數轉換為非空整數來使用它。

crypto_strong

如果傳遞到該函式中,將會儲存為一個 boolean 值來表明是否使用了「強加密」,如果被用於GPG和密碼之類的將返回true , 否則返回 false

返回值

成功,返回產生的位元組串 string , 或者在失敗時返回 false.

範例

示例 #1 openssl_random_pseudo_bytes() 範例:

<?php
for ($i = -1$i <= 4$i++) {
    
$bytes openssl_random_pseudo_bytes($i$cstrong);
    
$hex   bin2hex($bytes);

    echo 
"Lengths: Bytes: $i and Hex: " strlen($hex) . PHP_EOL;
    
var_dump($hex);
    
var_dump($cstrong);
    echo 
PHP_EOL;
}
?>

以上例程的輸出類似於:

Lengths: Bytes: -1 and Hex: 0
string(0) ""
NULL

Lengths: Bytes: 0 and Hex: 0
string(0) ""
NULL

Lengths: Bytes: 1 and Hex: 2
string(2) "42"
bool(true)

Lengths: Bytes: 2 and Hex: 4
string(4) "dc6e"
bool(true)

Lengths: Bytes: 3 and Hex: 6
string(6) "288591"
bool(true)

Lengths: Bytes: 4 and Hex: 8
string(8) "ab86d144"
bool(true)

參見

  • random_bytes() - Generates cryptographically secure pseudo-random bytes
  • bin2hex() - 函式把包含數據的二進制字串轉換為十六進制值
  • crypt() - 單向字串雜湊
  • mt_rand() - 產生更好的隨機數
  • uniqid() - 產生一個唯一ID

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *