openssl_public_encrypt
openssl_seal
OpenSSL Functions
PHP Manual

# openssl_random_pseudo_bytes

(PHP 5 >= 5.3.0)

openssl_random_pseudo_bytes — Generate a pseudo-random string of bytes

### Description

string openssl_random_pseudo_bytes ( int `$length` [, bool `&$crypto_strong` ] )

Generates a string of pseudo-random bytes, with the number of bytes determined by the `length` parameter.

It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random bytes, and does this via the optional `crypto_strong` parameter. It's rare for this to be `FALSE`, but some systems may be broken or old.

### Parameters

`length`

  The length of the desired string of bytes. Must be a positive integer. PHP will try to cast this parameter to a non-null integer to use it.

`crypto_strong`

  If passed into the function, this will hold a boolean value that determines if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, passwords, etc. `TRUE` if it did, otherwise `FALSE`

### Return Values

Returns the generated string of bytes on success, or `FALSE` on failure.

### Examples

Example #1 openssl_random_pseudo_bytes() example

`<?php
for ($i = -1; $i <= 4; $i++) {
$bytes = openssl_random_pseudo_bytes($i, $cstrong);
$hex = bin2hex($bytes);
echo "Lengths: Bytes: $i and Hex: " . strlen($hex) . PHP_EOL;
var_dump($hex);
var_dump($cstrong);
echo PHP_EOL;
}
?>`

The above example will output something similar to:

    Lengths: Bytes: -1 and Hex: 0
    string(0) ""
    NULL

    Lengths: Bytes: 0 and Hex: 0
    string(0) ""
    NULL

    Lengths: Bytes: 1 and Hex: 2
    string(2) "42"
    bool(true)

    Lengths: Bytes: 2 and Hex: 4
    string(4) "dc6e"
    bool(true)

    Lengths: Bytes: 3 and Hex: 6
    string(6) "288591"
    bool(true)

    Lengths: Bytes: 4 and Hex: 8
    string(8) "ab86d144"
    bool(true)

### See Also

- random_bytes() - Generates cryptographically secure pseudo-random bytes
- bin2hex() - Convert binary data into hexadecimal representation
- crypt() - One-way string hashing
- mt_rand() - Generate a better random value
- uniqid() - Generate a unique ID

openssl_public_encrypt
openssl_seal
OpenSSL Functions
PHP Manual