random_bytes

random_bytes

(PHP 7)

random_bytes - 生成密码安全的伪随机字节

Description

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()(https://msdn.microsoft.com/en-us/library/windows/desktop/aa379942(v=vs.85%29.aspx) will always be used.

  • 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.

Parameters

length

The length of the random string that should be returned in bytes.

Return Values

Returns a string containing the requested number of cryptographically secure random bytes.

Errors/Exceptions

  • 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.

Examples

Example #1 random_bytes() example

<?php $bytes = random_bytes(5 var_dump(bin2hex($bytes) ?>

The above example will output something similar to:

string(10) "385e33f741"

See Also

  • random_int() - Generates cryptographically secure pseudo-random integers

  • openssl_random_pseudo_bytes() - Generate a pseudo-random string of bytes

  • bin2hex() - Convert binary data into hexadecimal representation

← CSPRNG Functions

random_int →

© 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

https://secure.php.net/manual/en/function.random-bytes.php