将 GenerateRandom 与 AWS SDK 或 CLI 配合使用
以下代码示例演示如何使用 GenerateRandom。
- CLI
-
- AWS CLI
-
示例 1:生成 256 位随机字节字符串(Linux 或 macOS)
以下
generate-random示例生成 256 位(32 字节)、以 base64 编码的随机字节字符串。该示例对字节字符串进行解码并将其保存在随机文件中。运行此命令时,您必须使用
number-of-bytes参数指定随机值的长度(以字节为单位)。在运行此命令时,无需指定 KMS 密钥。随机字节字符串与任何 KMS 密钥无关。
默认情况下,AWS KMS 会生成随机数。但是,如果您指定 custom key store,则将在与该自定义密钥存储关联的 AWS CloudHSM 集群中生成随机字节字符串。
本示例使用以下参数和值:
它使用值为
32的必需--number-of-bytes参数来请求 32 字节(256 位)字符串。它使用值为text的--output参数来指示 AWS CLI 将输出作为文本(而不是 JSON)返回。它使用--query parameter从响应中提取Plaintext属性的值。它将命令的输出传送(|)到base64实用程序,该程序负责对提取的输出进行解码。它使用重定向运算符(>)将解码后的字节字符串保存到ExampleRandom文件中。它使用重定向运算符(>)将二进制加密文字保存到文件。aws kms generate-random \ --number-of-bytes 32 \ --output text \ --query Plaintext | base64 --decode > ExampleRandom此命令不生成任何输出。
有关更多信息,请参阅《AWS 密钥管理服务 API 参考》中的 GenerateRandom。
示例 2:生成 256 位随机数(Windows 命令提示符)
以下示例使用
generate-random命令生成 256 位(32 字节)、以 base64 编码的随机字节字符串。该示例对字节字符串进行解码并将其保存在随机文件中。此示例与前面的示例相同,不同之处在于:它在将随机字节字符串保存到文件之前,使用 Windows 中的certutil实用工具对随机字节字符串进行 base64 解码。首先,生成一个 base64 编码的随机字节字符串并将其保存在临时文件
ExampleRandom.base64中。aws kms generate-random \ --number-of-bytes32\ --outputtext\ --queryPlaintext>ExampleRandom.base64由于
generate-random命令的输出保存在文件中,因此,此示例不生成任何输出。现在,使用
certutil -decode命令解码ExampleRandom.base64文件中以 base64 编码的字节字符串。然后,它将解码后的字节字符串保存在ExampleRandom文件中。certutil -decode ExampleRandom.base64 ExampleRandom输出:
Input Length = 18 Output Length = 12 CertUtil: -decode command completed successfully.有关更多信息,请参阅《AWS 密钥管理服务 API 参考》中的 GenerateRandom。
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GenerateRandom
。
-
- Rust
-
- 适用于 Rust 的 SDK
-
注意
查看 GitHub,了解更多信息。在 AWS 代码示例存储库
中查找完整示例,了解如何进行设置和运行。 async fn make_string(client: &Client, length: i32) -> Result<(), Error> { let resp = client .generate_random() .number_of_bytes(length) .send() .await?; // Did we get an encrypted blob? let blob = resp.plaintext.expect("Could not get encrypted text"); let bytes = blob.as_ref(); let s = base64::encode(bytes); println!(); println!("Data key:"); println!("{}", s); Ok(()) }-
有关 API 详细信息,请参阅《AWS SDK for Rust API 参考》中的 GenerateRandom
。
-
有关 AWS SDK 开发人员指南和代码示例的完整列表,请参阅 将此服务与 AWS 开发工具包结合使用。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。