0

到目前为止,我一直在使用 md5 在我的网站上散列密码,没有加盐。

现在我正在构建一个必须更安全的应用程序,并且我正在阅读 md5 很容易受到暴力攻击。

所以我想用crypt()哈希密码。

我没有完全理解的是:

  1. 我必须提供盐还是内置生成的盐可以吗?
  2. 为了安全,我应该迭代 crypt 函数多少次(如果不止一次)?
  3. 使用 md5,无论输入字符串的长度如何,哈希都是 32 位的。crypt 是否也返回标准长度的哈希?
4

2 回答 2

1

如果要指定除 DES 以外的加密,则需要提供盐。否则,您可以使用默认盐。

您不会自己迭代 crypt 函数,这是在内部使用有意义的算法完成的。迭代次数通过盐指定。

是的,给定哈希算法的哈希长度是标准的;但是,不同的哈希算法具有不同的哈希长度。

于 2012-05-26T18:58:36.493 回答
0

crypt 可以使用不同的哈希算法。使用md5它返回 128 位整数(具有 32 个字符的十六进制表示)。与盐一起使用crypt一次是安全的。建议应用程序提供盐

一个可选的盐字符串,作为散列的基础。如果未提供,则行为由算法实现定义,并可能导致意外结果。

于 2012-05-26T18:59:10.300 回答