HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //lib/python3/dist-packages/awscli/examples/kms/generate-random.rst
**Example 1: To generate a 256-bit random number**

The following ``generate-random`` example generates a 256-bit (32-byte) random number. 

When you run this command, you must use the ``number-of-bytes`` parameter to specify the length of the random number in bytes.

You don't specify a CMK when you run this command. Unless you specify a `custom key store <https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html>`__, AWS KMS generates the random number. It is not associated with any particular CMK. ::

    aws kms generate-random --number-of-bytes 32

In the output, the random number is in the ``Plaintext`` field. ::

    {
        "Plaintext": "Hcl7v6T2E+Iangu357rhmlKZUnsb/LqzhHiNt6XNfQ0="
    }

**Example 2: To generate a 256-bit random number and save it to a file (Linux or macOs)**

The following example uses the ``generate-random`` command to generate a 256-bit (32-byte), base64-encoded random byte string on a Linix or macOS computer. The example decodes the byte string and saves it in the ``ExampleRandom`` file. 

When you run this command, you must use the ``number-of-bytes`` parameter to specify the length of the random number in bytes.

You don't specify a CMK when you run this command. Unless you specify a `custom key store <https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html>`__, AWS KMS generates the random number. It is not associated with any particular CMK. 

* The ``--number-of-bytes`` parameter with a value of ``32`` requests a 32-byte (256-bit) string. 
* The ``--output`` parameter with a value of ``text`` directs the AWS CLI to return the output as text, instead of JSON. 
* The ``--query`` parameter extracts the value of the ``Plaintext`` property from the response.
* The pipe operator ( | ) sends the output of the command to the ``base64`` utility, which decodes the extracted output. 
* The redirection operator (>) saves the decoded byte string to the ``ExampleRandom`` file.

    aws kms generate-random --number-of-bytes 32 --output text --query Plaintext | base64 --decode > ExampleRandom

This command produces no output.

**Example 3: To generate a 256-bit random number and save it to a file(Windows Command Prompt)**

The following example uses the ``generate-random`` command to generate a 256-bit (32-byte), base64-encoded random byte string. The example decodes the byte string and saves it in the `ExampleRandom.base64` file.

This example is the same as the previous example, except that it uses the ``certutil`` utility in Windows to base64-decode the random byte string before saving it in a file.

The first command generates the base64-encoded random byte string and saves it in a temporary file, ``ExampleRandom.base64``. The second command uses the ``certutil -decode`` command to decode the base64-encoded byte string in the ``ExampleRandom.base64`` file. Then, it saves the decoded byte string in the ``ExampleRandom`` file. ::
    
    aws kms generate-random --number-of-bytes 32 --output text --query Plaintext > ExampleRandom.base64
    certutil -decode ExampleRandom.base64 ExampleRandom

Output::

    Input Length = 18
    Output Length = 12
    CertUtil: -decode command completed successfully.

For more information, see `GenerateRandom <https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateRandom.html>`__ in the *AWS Key Management Service API Reference*.