警告:不要使用此函式。
請改用 gmp_random_bits() 或 gmp_random_range()。
此函式的文件和程式碼不符,無論如何,此函式相當無用。
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
gmp_random — 亂數
此函式自 PHP 7.2.0 起已被標記為 *已棄用*,並自 PHP 8.0.0 起已被 *移除*。強烈建議不要依賴此函式。
產生一個亂數。此數字將介於 0 和 (2 ** n) - 1 之間,其中 n 是每個肢體的位元數乘以 limiter
。如果 limiter
為負數,則會產生負數。
一個 limb 是 GMP 內部的機制。一個 limb 的位元數不是靜態的,會因系統而異。通常,一個 limb 的位元數是 32 或 64,但這並不能保證。
此函式不會產生密碼學安全的數值,而且*絕不能*用於密碼學用途,或需要無法猜測的傳回值的用途。
如果需要密碼學安全的隨機性,可以使用 Random\Randomizer 搭配 Random\Engine\Secure 引擎。對於簡單的使用案例,random_int() 和 random_bytes() 函式提供了一個方便且安全的 API,它由作業系統的 CSPRNG 支援。
limiter
限制器。
一個 GMP 物件、一個 整數 或一個可以被解釋為數字的 字串,其遵循與在 gmp_init() 中使用字串並啟用自動基數偵測(即 base
等於 0 時)相同的邏輯。
一個隨機的 GMP 數字。
範例 #1 gmp_random() 範例
<?php
$rand1 = gmp_random(1); // 0 到 1 * 每個 limb 的位元數 之間的隨機數
$rand2 = gmp_random(2); // 0 到 2 * 每個 limb 的位元數 之間的隨機數
echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>
上述範例將輸出
1915834968 8642564075890328087
警告:不要使用此函式。
請改用 gmp_random_bits() 或 gmp_random_range()。
此函式的文件和程式碼不符,無論如何,此函式相當無用。