【问题标题】:Make md5 strong让md5强大
【发布时间】:2009-11-13 18:59:37
【问题描述】:

我正在制作一个与仅支持 md5 哈希方法 (atm) 的游戏集成的网站。哪个 ofc 不再特别安全了。但我怎样才能让它更强大呢?我应该只生成一长串随机字母和数字并将它们散列吗?但是用户必须将密码保存在计算机中的纸质/txt文件中。

你有什么建议?

【问题讨论】:

  • 这似乎是第三方强制执行 MD5 要求。在那种情况下,你确定你甚至可以做任何事情吗?如果他们需要了解哈希,那么您可能无能为力 - 但如果他们不这样做,那么您就不清楚为什么需要 MD5。

标签: security encryption hash md5


【解决方案1】:

md5 哈希对你正在做的事情有什么问题?向它扔更多随机字符不会有太大影响。

您可以查看SHA hashes 以获得 md5 的替代方案。

【讨论】:

  • 同时避免使用默认种子。如果他们不能使用/降低彩虹表的有效性,将需要更长的时间来破解。
  • OP说ATM设备只支持MD5。
  • @Loadmaster 我不知道你是否在讽刺,但我很确定 atm 代表“此刻”.. :)
【解决方案2】:

md5 的弱点被夸大了,但你可以用 sha512 代替。这是一种更好的哈希算法。

【讨论】:

    【解决方案3】:

    虽然由于 MD5 的弱点,它并不是最好的散列算法,但这完全取决于你在做什么。如果这是您唯一的选择,并且您想在将密码存储到数据库之前对其进行哈希处理,请务必这样做。

    您说 MD5 是“目前”您唯一的选择。这是否意味着您以后可能会使用其他哈希算法?现在考虑使用 MD5,但要为自己留一条升级路径以使用其他算法。

    您可能需要考虑将盐与 MD5 结合使用。这将有助于防御某些攻击(例如彩虹表)。

    【讨论】:

      【解决方案4】:

      如果用于密码散列,请考虑使用加盐散列,而不是仅仅对密码进行粗略散列。 See Wikipedia

      如果密码是用户选择的,请考虑设置密码强度指示器,并防止他们使用过于简单的密码。一件好事是检查它们至少是大/小/数字中的两个,并通过cracklib运行它们,如果它们失败,则拒绝设置密码。

      除此之外,您还可以。

      【讨论】:

        【解决方案5】:

        你究竟在散列什么以及如何使用散列?

        您是否有机会存储帐户密码以在网站上进行身份验证?密码散列的弱点是由以错误的方式使用散列(任何散列)引起的,而不是由固有的散列算法弱点引起的。没有人会暴力破解您的 MD5 哈希,问题将是针对已知哈希值(彩虹表)的字典攻击。保护措施是使用 HMAC 散列或类似的东西,例如“加盐”散列。

        如果您认为使用不同的散列算法会给您带来任何好处,恐怕您走错了路。虽然 SHA1 或 SHA256 确实具有更强的加密属性,并且可以承受更长时间的暴力攻击,但如果使用不当,即使是强哈希也将毫无用处。另一方面,如果使用得当,MD5 也能正常工作。

        【讨论】:

          猜你喜欢
          • 2014-08-14
          • 2010-11-16
          • 1970-01-01
          • 2019-06-22
          • 2011-07-31
          • 2021-05-07
          • 1970-01-01
          • 2015-05-03
          • 2010-10-15
          相关资源
          最近更新 更多