【问题标题】:Switching from md5() to crypt()从 md5() 切换到 crypt()
【发布时间】:2012-06-01 21:24:50
【问题描述】:

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

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

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

我没有完全理解的是:

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

【问题讨论】:

    标签: php encryption hash


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 128 位,但不是整数
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      • 1970-01-01
      • 2020-06-01
      • 2010-10-02
      • 1970-01-01
      相关资源
      最近更新 更多