什么是安全的会话密钥?

4

我正在使用express-session,需要创建一个会话密钥。
我已经了解到该密钥用于哈希。

这个密钥应该有多长,应该包含什么字符?

我想使用一个随机的字母数字字符串,例如:
IqFic484907I0T552hiMQ1UCJimRGL55
有人能给我提供建议吗?

1个回答

4
秘密是用来签署会话ID cookie的,以防止cookie被篡改。
最终,负责创建签名的模块是cookie-signature,它使用crypto.createHmac(),使用秘密作为键和SHA256算法进行哈希处理。
我认为秘密的长度没有真正的上限(除了可能是Node中字符串的最大长度,我甚至认为这种限制不存在)。如果长度超过256位(=32字节),则首先将其缩小到32字节进行哈希处理。
对于秘密中放置哪些字符也没有限制。随机的字母数字字符组成的字符串,长度为24至32字节即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接