从md5()切换到crypt()

时间:2012-05-26 18:53:39

标签: php encryption hash

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

现在我正在构建一个必须更安全的应用程序,而我正在阅读md5可能很容易被暴力攻击。

所以我想使用crypt()来对密码进行哈希处理。

我还没有完全理解的是:

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

2 个答案:

答案 0 :(得分:1)

如果要指定DES以外的加密,则需要提供salt。否则,您对默认盐很好。

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

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

答案 1 :(得分:0)

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

  

用于基于散列的可选盐串。如果没有提供,   行为是由算法实现定义的,可以导致   意想不到的结果。