random_bytes

(PHP 7)

random_bytesGenerates cryptographically secure pseudo-random bytes

说锟斤拷

random_bytes ( int $length ) : string

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.

锟斤拷锟斤拷

Example #1 random_bytes() example

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

锟斤拷锟斤拷锟斤拷锟教碉拷锟斤拷锟斤拷锟斤拷锟斤拷冢锟�

string(10) "385e33f741"

锟轿硷拷

  • random_int() - Generates cryptographically secure pseudo-random integers
  • openssl_random_pseudo_bytes() - 锟斤拷锟斤拷一锟斤拷伪锟斤拷锟斤拷纸诖锟�
  • bin2hex() - 锟斤拷锟斤拷锟窖帮拷锟斤拷锟斤拷锟捷的讹拷锟斤拷锟斤拷锟街凤拷锟斤拷转锟斤拷为十锟斤拷锟斤拷锟斤拷值