在PHP7,以下兩個新的函數引入以產生一個跨平臺的方式加密安全整數和字串。
-
random_bytes() - 生成加密安全偽隨機位元組。
-
random_int() - 生成加密安全偽隨機整數。
random_bytes()
random_bytes()適合於使用來生成密碼,密碼學隨機的任意長度的字串,如:生成 salt,密鑰或初始向量。
語法
string random_bytes ( int $length )
參數
-
length - 返回隨機串的位元組長度
返回值
-
返回包含加密安全隨機位元組的請求數量的字串。
錯誤/異常
-
如果無法找到隨機性的適當源,將引發異常
-
如果給定參數無效,TypeError將被拋出
-
如果給出位元組長度無效,錯誤將被拋出
示例
<?php $bytes = random_bytes(5); print(bin2hex($bytes)); ?>
這將在流覽器產生以下輸出 -
54cc305593
random_int()
random_int()產生適合於用於結果是非常重要的加密隨機整數。
語法
int random_int ( int $min , int $max )
參數
-
min - 返回最小值,它必須是PHP_INT_MIN或更大的值
-
max - 返回最大值,它必須是小於或等於PHP_INT_MAX
返回值
-
返回最小值(min)到最大(max)的範圍內,包括加密安全隨機整數。
錯誤/異常
-
如果無法找到隨機性一個適當的源,將引發異常
-
如果給定參數無效,TypeError 將被拋出
-
如果 max 小於 min 時,錯誤將被拋出
示例
<?php print(random_int(100, 999)); print(" "); print(random_int(-1000, 0)); ?>
這將在流覽器產生以下輸出 -
614 -882