ACL GENPASS

语法
ACL GENPASS [bits]
可用版本
Redis Open Source 6.0.0
时间复杂度
O(1)
ACL 类别
@slow,

ACL 用户需要一个可靠的密码才能在没有安全风险的情况下向服务器进行身份验证。此类密码无需人工记住,只需计算机记住即可,因此可以非常长且强度高(外部攻击者无法猜测)。如果可用,ACL GENPASS 命令会从 /dev/urandom 生成密码;否则(在没有 /dev/urandom 的系统中),它会使用一个较弱的系统,但该系统可能仍比手动选择弱密码更好。

默认情况下(如果 /dev/urandom 可用),生成的密码强度高,可用于 Redis 应用程序上下文中的其他用途,例如创建唯一的会话标识符或其他类型的不可猜测且不冲突的 ID。密码生成成本也非常低,因为我们并非在每次执行时都真正向 /dev/urandom 请求比特。在启动时,Redis 使用 /dev/urandom 创建一个种子,然后它将使用计数器模式的 SHA256,并以 HMAC-SHA256(seed,counter) 作为原语,根据需要创建更多随机字节。这意味着应用程序开发人员可以随意使用 ACL GENPASS 来创建所需数量的安全伪随机字符串。

命令输出是二进制字符串的十六进制表示。默认情况下,它会生成 256 比特(即 64 个十六进制字符)。用户可以提供一个参数来指定要生成的比特数,范围从 1 到 1024,以改变输出长度。请注意,提供的比特数总是向上取整到最接近的 4 的倍数。例如,如果请求只需要 1 比特密码,结果将生成 4 比特,以单个十六进制字符的形式表示。

示例

> ACL GENPASS
"dd721260bfe1b3d9601e7fbab36de6d04e2e67b0ef1c53de59d45950db0dd3cc"

> ACL GENPASS 32
"355ef3dd"

> ACL GENPASS 5
"90"

RESP2/RESP3 回复

批量字符串回复:伪随机数据。默认情况下,包含 64 字节,表示 256 比特数据。如果指定了 bits,则输出字符串长度为指定比特数(向上取整到最接近的 4 的倍数)除以 4。
评价本页
返回顶部 ↑