到目前为止,我一直在使用 md5 在我的网站上散列密码,没有加盐。
现在我正在构建一个必须更安全的应用程序,并且我正在阅读 md5 很容易受到暴力攻击。
所以我想用crypt()
哈希密码。
我没有完全理解的是:
- 我必须提供盐还是内置生成的盐可以吗?
- 为了安全,我应该迭代 crypt 函数多少次(如果不止一次)?
- 使用 md5,无论输入字符串的长度如何,哈希都是 32 位的。crypt 是否也返回标准长度的哈希?
到目前为止,我一直在使用 md5 在我的网站上散列密码,没有加盐。
现在我正在构建一个必须更安全的应用程序,并且我正在阅读 md5 很容易受到暴力攻击。
所以我想用crypt()
哈希密码。
我没有完全理解的是:
如果要指定除 DES 以外的加密,则需要提供盐。否则,您可以使用默认盐。
您不会自己迭代 crypt 函数,这是在内部使用有意义的算法完成的。迭代次数通过盐指定。
是的,给定哈希算法的哈希长度是标准的;但是,不同的哈希算法具有不同的哈希长度。
crypt 可以使用不同的哈希算法。使用md5
它返回 128 位整数(具有 32 个字符的十六进制表示)。与盐一起使用crypt
一次是安全的。建议应用程序提供盐
一个可选的盐字符串,作为散列的基础。如果未提供,则行为由算法实现定义,并可能导致意外结果。