random_bytes

Get cryptographically secure random bytes

&reftitle.description; `string` `random_bytes` `int` `length`

Generates a string containing uniformly selected random bytes with the requested `length`.

As the returned bytes are selected completely randomly, the resulting string is likely to contain unprintable characters or invalid UTF-8 sequences. It may be necessary to encode it before transmission or display.

The randomness generated by this function is suitable for all applications, including the generation of long-term secrets, such as encryption keys.

&csprng.sources; &csprng.function.backport;
&reftitle.parameters;

`length`

- The length of the random string that should be returned in bytes; must be `1` or greater.

&reftitle.returnvalues;

A string containing the requested number of cryptographically secure random bytes.

&reftitle.errors;

&csprng.errors;

- If the value of `length` is less than `1`, a `ValueError` will be thrown.

&reftitle.changelog;

&Version; | &Description;
8.2.0 | In case of a CSPRNG failure, this function will now throw a `Random\RandomException`. Previously a plain `Exception` was thrown.

&reftitle.examples;

### `random_bytes` example

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

&example.outputs.similar;

    string(10) "385e33f741"

&reftitle.seealso;

- `Random\Randomizer::getBytes`
- `random_int`
- `bin2hex`
- `base64_encode`