- 用法
-
ACL GENPASS [ bits ]
- 复杂度
- O(1)
- 始于
- 6.0.0
- ACL 类别
- @slow
ACL 用户需要一个高强度密码才能在没有安全风险的情况下向服务器进行身份验证。此类密码无需由人类记住,而只需由计算机记住,因此它可以非常长且强度高(外部攻击者无法猜测)。ACL GENPASS
命令会从 /dev/urandom(如果可用)生成密码,否则(在没有 /dev/urandom 的系统中)它会使用一个较弱的系统,但该系统仍然可能比手动选择弱密码要好。
默认情况下(如果 /dev/urandom 可用),生成的密码是高强度的,并且可以在应用程序上下文中用于其他用途,例如创建唯一的会话标识符或其他不可猜测且不冲突的 ID。密码生成也非常廉价,因为我们实际上并不是在每次执行时都向 /dev/urandom 请求位。在启动时,Valkey 会使用 /dev/urandom 创建一个种子,然后它将使用计数器模式下的 SHA256,以 HMAC-SHA256(seed,counter) 作为原语,根据需要创建更多随机字节。这意味着应用程序开发人员可以随意使用 ACL GENPASS
来创建所需数量的安全伪随机字符串。
命令输出是二进制字符串的十六进制表示。默认情况下,它会生成 256 位(即 64 个十六进制字符)。用户可以提供一个参数,指定要生成的位数,范围从 1 到 1024,以更改输出长度。请注意,提供的位数总是向上舍入到 4 的下一个倍数。因此,例如,如果请求仅 1 位的密码,将生成 4 位,以单个十六进制字符的形式输出。
示例
127.0.0.1:6379> ACL GENPASS
"dd721260bfe1b3d9601e7fbab36de6d04e2e67b0ef1c53de59d45950db0dd3cc"
127.0.0.1:6379> ACL GENPASS 32
"355ef3dd"
127.0.0.1:6379> ACL GENPASS 5
"90"
RESP2/RESP3 回复
Bulk string 回复:伪随机数据。默认情况下,它包含 64 字节,表示 256 位数据。如果提供了 bits
参数,输出字符串的长度为指定位数(向上舍入到 4 的下一个倍数)除以 4。