【发布时间】:2010-09-16 02:16:19
【问题描述】:
任何salt 在对用户密码进行加盐和散列处理时显然都会有所帮助。盐应该放多长时间有什么最佳做法吗?我会将盐存储在我的用户表中,因此我希望在存储大小和安全性之间进行最佳权衡。随机的 10 个字符的盐是否足够?还是我需要更长的时间?
【问题讨论】:
-
我没有关于盐长度的建议,但是这里显示的答案有很多不好的信息。你的盐绝对应该: - 是随机的 - 是每个秘密(不是存储在程序映像或配置文件中的单个值)。盐不是密码秘密,因此将其存储在您的表中是没有问题的。 salt 的唯一目的是确保当对同一项目的不同实例进行散列(或加密)时,您会得到不同的结果。
-
对于那些不知道什么是盐的人:维基百科上的en.wikipedia.org/wiki/Salt_(cryptography)">Salt(密码学)
-
或者是否存在盐长度与哈希输出长度的最佳比率? 8 字节盐对于 HMAC-SHA-256 可能就足够了,但对于 HMAC-SHA-512 可能不够。
-
加密随机盐与散列函数的输出大小相同意味着“尝试所有可能的盐”(加上密码字典)攻击需要与“尝试所有可能的散列结果”一样多的努力攻击 - 这是标准的蛮力。较短的盐意味着您可以将盐字典和密码字典作为暴力攻击。
-
-1 诚然没有(甚至试图)回答这个问题。
标签: encryption hash salt