ACL GENPASS
语法
ACL GENPASS [bits]
- 可用版本
- 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。