OpenSSL

密码学与 SSL/TLS 工具包

openssl-rand

名称

openssl-rand - 生成伪随机字节

概要

openssl rand [-help] [-out 文件] [-base64] [-hex] [-engine id] [-rand 文件] [-writerand 文件] [-provider 名称] [-provider-path 路径] [-propquery propq] num[K|M|G|T]

描述

此命令使用密码学安全的伪随机数生成器 (CSPRNG) 生成 num 个随机字节。可以在 num 值后面添加后缀 [K|M|G|T] 以表示请求的值应分别作为 KiB/MiB/GiB/TiB 的倍数进行缩放。请注意,后缀区分大小写,并且后缀表示二进制倍数(K = 1024 字节,M = 1024*1024 字节,等等)。

字符串 'max' 可以替换 num 中的数值,以请求 CSPRNG 每次实例化可以产生的最大字节数。目前,根据 NIST SP 800-90C,这限制为 2^61 个字节。

随机字节是使用 RAND_bytes(3) 函数生成的,该函数提供了 256 位的安全级别,前提是它能够从受信任的操作系统熵源成功地自行播种。否则,命令将以非零错误代码失败。有关更多详细信息,请参阅 RAND_bytes(3)RAND(7)EVP_RAND(7)

选项

-help

打印用法消息。

-out 文件

写入 文件 而不是标准输出。

-base64

对输出执行 base64 编码。

-hex

将输出显示为十六进制字符串。

-engine id

请参阅 openssl(1) 中的“引擎选项”。此选项已弃用。

-rand 文件-writerand 文件

有关详细信息,请参阅 openssl(1) 中的“随机状态选项”

-provider 名称
-provider-path 路径
-propquery propq

请参阅 openssl(1) 中的“提供程序选项”provider(7)property(7)

另请参阅

openssl(1)RAND_bytes(3)RAND(7)EVP_RAND(7)

历史记录

-engine 选项在 OpenSSL 3.0 中已弃用。

版权所有 2000-2021 OpenSSL 项目作者。保留所有权利。

根据 Apache 许可证 2.0 版(“许可证”)获得许可。除非符合许可证,否则您不得使用此文件。您可以在源代码分发中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取一份副本。