ACL GENPASS
Syntax
ACL GENPASS [bits]
- Available since:
- 6.0.0
- Time complexity:
- O(1)
- ACL categories:
-
@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 回复
Bulk string reply: pseudorandom data. By default it contains 64 bytes, representing 256 bits of data. Ifbits
was given, the output string length is the number of specified bits (rounded to the next multiple of 4) divided by 4.