random_bytes

Generates cryptographically secure pseudo-random bytes

说明

string random_bytes ( 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/urandom will 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 TypeError will be thrown.
  • If an invalid length of 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 random_int ( int $min , 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/urandom will 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 TypeError will be thrown.
  • If max is less than min, an 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