ACL GENPASS

生成可用于识别 ACL 用户的伪随机安全密码。

语法

ACL GENPASS [bits]

引入版本:6.0.0

复杂度摘要:O(1)

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 位。

可选参数

bits

生成的密码的熵量(以位为单位)。默认为 256。

示例

> ACL GENPASS
"dd721260bfe1b3d9601e7fbab36de6d04e2e67b0ef1c53de59d45950db0dd3cc"

> ACL GENPASS 32
"355ef3dd"

> ACL GENPASS 5
"90"

Redis Software 与 Redis Cloud 兼容性

Redis
软件
Redis
Cloud
说明
❌ 标准
❌主动-主动
❌ 标准
❌主动-主动

返回值

RESP2

批量字符串回复:伪随机数据。默认情况下它包含 64 个字节,代表 256 位数据。如果给出了 bits,则输出字符串长度为指定位数(四舍五入到下一个 4 的倍数)除以 4。

RESP3

批量字符串回复:伪随机数据。默认情况下它包含 64 个字节,代表 256 位数据。如果给出了 bits,则输出字符串长度为指定位数(四舍五入到下一个 4 的倍数)除以 4。

资料来源:Redis 官方 ACL GENPASS 文档;中文内容参考 Redis 文档许可。