Ref/csprng-Phpdoc专题
random_bytes
Generates cryptographically secure pseudo-random bytes
说明
string <span
class="methodname">random_bytes ( <span
class="methodparam">int $length )
Generates an arbitrary length string of cryptographic random bytes that are suitable for cryptographic use, such as when generating salts, keys or initialization vectors.
The sources of randomness used for this function are as follows:
- On Windows, » CryptGenRandom will always be used. As of PHP 7.2.0, the » CNG-API will always be used instead.
- On Linux, the » getrandom(2) syscall will be used if available.
- On other platforms,
/dev/urandomwill be used. - If none of the aforementioned sources are available, then an Exception will be thrown.
Note: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.
参数
length
The length of the random string that should be returned in bytes.
返回值
Returns a string containing the requested number of cryptographically secure random bytes.
错误/异常
- If an appropriate source of randomness cannot be found, an Exception will be thrown.
- If invalid parameters are given, a <span class="classname">TypeError will be thrown.
- If an invalid
lengthof bytes is given, an Error will be thrown.
范例
示例 #1 random_bytes example
<?php
$bytes = random_bytes(5);
var_dump(bin2hex($bytes));
?>
以上例程的输出类似于:
string(10) "385e33f741"
参见
- random_int
- openssl_random_pseudo_bytes
- bin2hex
random_int
Generates cryptographically secure pseudo-random integers
说明
int <span
class="methodname">random_int ( <span
class="type">int $min , <span
class="type">int $max )
Generates cryptographic random integers that are suitable for use where unbiased results are critical, such as when shuffling a deck of cards for a poker game.
The sources of randomness used for this function are as follows:
- On Windows, » CryptGenRandom will always be used. As of PHP 7.2.0, the » CNG-API will always be used instead.
- On Linux, the » getrandom(2) syscall will be used if available.
- On other platforms,
/dev/urandomwill be used. - If none of the aforementioned sources are available, then an Exception will be thrown.
Note: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.
参数
min
The lowest value to be returned, which must be PHP_INT_MIN or
higher.
max
The highest value to be returned, which must be less than or equal to
PHP_INT_MAX.
返回值
Returns a cryptographically secure random integer in the range min to
max, inclusive.
错误/异常
- If an appropriate source of randomness cannot be found, an Exception will be thrown.
- If invalid parameters are given, a <span class="classname">TypeError will be thrown.
- If
maxis less thanmin, an <span class="classname">Error will be thrown.
范例
示例 #1 random_int example
<?php
var_dump(random_int(100, 999));
var_dump(random_int(-1000, 0));
?>
以上例程的输出类似于:
int(248)
int(-898)
参见
- random_bytes
目录
- random_bytes — Generates cryptographically secure pseudo-random bytes
- random_int — Generates cryptographically secure pseudo-random integers