在django和彩虹表中存储密码

时间:2013-02-22 05:18:27

标签: django passwords salt django-authentication

django文档中,它说django将密码创建为字符串algo$hash

其中algo默认为pbkdf2,hash是密码字符串的sha256哈希值。

在某些articles中,我读到使用随机salt创建安全密码,然后将其存储在每个用户的数据库中。这使得试图破解的恶意用户很难密码使用rainbow table s。但是当我检查我的django项目的auth_user表时,我只找到一个字符串,每个用户开始'pbkdf2_sha256$'。我找不到任何存储的盐

这是否意味着存储的密码容易受到使用raibow表的攻击?

1 个答案:

答案 0 :(得分:1)

Django文档明确声明它使用盐herehere哈希密码:

  

User对象的password属性是这种格式的字符串:

     

hashtype $ $盐散列

     

这是hashtype,salt和hash,由美元符号分隔   字符。

     

Hashtype是sha1(默认值),md5或crypt - 使用的算法   执行密码的单向哈希。盐是随机字符串   用于加密原始密码以创建哈希。请注意隐窝   方法仅在具有标准Python的平台上受支持   crypt模块可用。

因此将有2个美元符号,中间是盐。