Php 简明教程
PHP – CSPRNG
CSPRNG 的缩写代表密码安全伪随机数生成器。PHP 函数库包含了许多用于生成随机数的函数。例如:
-
mt_rand() − 通过 Mersenne Twister 随机数生成器生成一个随机值
-
mt_srand() − 设置 Mersenne Twister 随机数生成器的种子
-
rand() − 生成一个随机整数。
Example
以下代码演示了如何使用函数 mt_rand() 来生成随机数:
<?php
# Generates random integer between the range
echo "Random integer: " . rand(1,100) . PHP_EOL;
# Generate a random value via the Mersenne Twister Random Number Generator
echo "Random number: " . mt_rand(1,100);
?>
它将生成以下 output −
Random integer: 45
Random number: 86
请注意,每次执行代码时输出可能不同。但是由这些函数生成的随机数并非密码安全,因为可能会猜出其结果。PHP 7 引入了几个生成安全随机数的函数。
以下函数具有加密安全性,是新添加的 -
-
random_bytes() − 生成具有加密安全性的伪随机字节。
-
random_int() − 生成具有加密安全性的伪随机整数。
The random_bytes() Function
random_bytes() 生成任意长度的加密随机比特串,该串适合用于加密用途,例如生成哈希盐、密钥或初始化向量时。
string random_bytes ( int $length )
The random_int() Function
random_int() 生成加密随机整数,适用于在公正结果极其重要的场景下使用。
int random_int ( int $min , int $max )