生成Django SHA1密码

时间:2011-03-10 12:49:12

标签: django django-admin passwords

我需要根据已经在Django中创建的用户,从另一个python软件提供对Django数据库的访问。我对整个访问权限感到满意,我只需要一段代码来生成管理身份验证模块的Django密码。

这样做的最佳方法是什么?请注意,如果可能的话,我不希望拥有整个Django包。

非常感谢

2 个答案:

答案 0 :(得分:6)

知道它是如何工作的。我写了一个小函数来检查用户的密码:

def check_passwd (user, raw_password):
     import hashlib
     # ... get 'hsh_passwd' from database based on 'user' ...
     hsh_passwd = hsh_passwd.split('$')
     salt = hsh_passwd[1]
     hsh = hsh_passwd[2]
     if hsh == hashlib.sha1(salt + raw_password).hexdigest():
         return True
     return False

当然,没有太多的验证,而且它不灵活,但这是我一直在寻找的。

答案 1 :(得分:4)

创建和验证用户密码的完整代码位于django.contrib.auth.models

具体来说,请查看方法User.set_passwordUser.check_password。您需要提取这两个位以及它们引用的Django代码,以根据Django创建和验证项目的用户密码。