openssl-rand(1ssl)

openssl-rand1ssl

Generate pseudo-random bytes

Usage

openssl rand [-help] [-out file] [-base64] [-hex] [-engine id] [-rand files] [-writerand file] [-provider name] [-provider-path path] [-provparam [name:] key=value] [-propquery propq] num [{K | M | G | T}]

Overview

This command generates num random bytes using a cryptographically secure pseudo random number generator (CSPRNG). A suffix [K|M|G|T] may be appended to the num value to indicate the requested value be scaled as a multiple of KiB/MiB/GiB/TiB respectively. Note that suffixes are case sensitive, and that the suffixes represent binary multiples (K = 1024 bytes, M = 1024*1024 bytes, etc).

The string 'max' may be substituted for a numerical value in num, to request the maximum number of bytes the CSPRNG can produce per instantiation. Currently, this is restricted to 2^61 bytes as per NIST SP 800-90C.

The random bytes are generated using the RAND_bytes(3) function, which provides a security level of 256 bits, provided it managed to seed itself successfully from a trusted operating system entropy source. Otherwise, the command will fail with a nonzero error code. For more details, see RAND_bytes(3), RAND(7), and EVP_RAND(7).

Options

-help

Print out a usage message.

-out file

Write to file instead of standard output.

-base64

Perform base64 encoding on the output.

-hex

Show the output as a hex string.

-engine id

See "Engine Options" in openssl(1). This option is deprecated.

-rand files, -writerand file

See "Random State Options" in openssl(1) for details.

-provider name
-provider-path path
-provparam [name:]key=value
-propquery propq

See "Provider Options" in openssl(1), provider(7), and property(7).

Releases

6 releases since Debian 9 (Stretch); the text changed 5 times.

  1. 9
  2. 10
  3. 11
  4. 12
  5. 13
  6. Arch

-engine since Debian 12 (Bookworm); -propquery since Debian 12 (Bookworm); -provider since Debian 12 (Bookworm); -provider-path since Debian 12 (Bookworm); -provparam since Debian 13 (Trixie); -writerand since Debian 12 (Bookworm).

History

The -engine option was deprecated in OpenSSL 3.0.

From openssl 3.6.5-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.