作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图使用带有用户名和 token 的cookie向网站添加“记住我”功能,该cookie也以加密方式存储在数据库中。我的问题是该 token 应保留多长时间? One website I read说的是128bit,在我看来是16个字符。我不太担心重复,因为即使256个字符的字符集中有16个字符也可以提供大量的可能性,并且同时重复的可能性很小。
token 应该持续多长时间? (我不知道如何产生值(value)或独特性。)
最佳答案
我认为这更多地取决于该值如何随机化而不是多长时间。如果256位哈希只是一个很容易猜到或缩小的事物的哈希,例如基于时间的唯一ID,则根本不安全。
但是,正如您已经说过的那样,您并不是在专门询问如何使其足够随机。
为了破坏某些东西,估计需要2 ^ 80(或更多)操作通常是一个很好的措施。这意味着80位哈希是安全的。 (如果您容易受到生日袭击的影响,则需要160位的两倍,但我认为这种情况并不适用)。
就个人而言,我使用256位哈希值。使用base64编码时,它们的长度只能压缩为43个字符,所有可打印字符。我认为,即使这远远超出了我的需求,拥有这么长的时间也不是什么大麻烦。
关于authentication - “remember me” token 应保留多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/637258/
我是一名优秀的程序员,十分优秀!