【问题标题】:What's the meaning of including 'random salt' in password hashing of django framework?在 django 框架的密码哈希中包含“随机盐”是什么意思?
【发布时间】:2011-10-16 04:00:33
【问题描述】:

我是 Django 框架的新手。在浏览 django 的默认身份验证系统时,我发现 django 以algorithm$salt$hashed 格式存储用户密码。每个用户的盐都不一样; django 为每个用户生成每个新盐。

我已经制作了几个网页,并且有很多机会使用其他开源软件,但总是只有“一个”盐字符串用于哈希。

所以,我的问题是:

  1. 为什么 django 在“一个”盐字符串旁边使用“随机”盐?
  2. 为什么 django 将其与密码哈希存储在同一列中?

【问题讨论】:

    标签: django passwords hash salt


    【解决方案1】:

    为什么 django 在“一个”盐字符串旁边使用“随机”盐?

    因为如果你有一种盐,你可以为你的数据库生成彩虹表,而不是随机的盐。

    如果你想生成彩虹表来解密 django 哈希,你必须为数据库中的每个不同的盐生成表。生成彩虹表需要很长时间,它只是暴力或字典攻击。

    为什么 django 将其与密码哈希存储在同一列中?

    我不知道您具体要问什么,但可能有 2 个答案。

    -它被存储是因为有人这样设计它。它可能在盐场上,没关系。

    -当用户通过表单 django 发送密码时,将 salt 加入字符串,然后计算 sha1 并检查它是否与 db 中的匹配。

    【讨论】:

    • 非常感谢您的帮助。我问了 2 号,因为我不明白 1 号的原因。谢谢!
    【解决方案2】:

    随机盐防止使用彩虹表快速解密表中的所有密码。相反,他们必须分别做每一项。

    【讨论】:

      【解决方案3】:

      加盐密码的做法旨在让攻击者更难暴力破解您存储的密码。 More info.

      【讨论】:

      • 感谢您的回答,但我知道盐在散列中的用途。我的问题不仅仅是盐。
      猜你喜欢
      • 2010-10-06
      • 2017-06-19
      • 1970-01-01
      • 2015-08-18
      • 2012-01-08
      • 2011-12-06
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多