【问题标题】:Generate Django SHA1 passwords生成 Django SHA1 密码
【发布时间】:2011-07-12 16:48:57
【问题描述】:

我需要根据已经在 Django 中创建的用户,从另一个 python 软件提供对 Django 数据库的访问。我对整个访问没问题,我只需要一段代码来生成一个 Django 密码,就像 admin auth 模块一样。

最好的方法是什么?请注意,如果可能的话,我不想为此使用整个 Django 包。

非常感谢

【问题讨论】:

标签: django django-admin passwords


【解决方案1】:

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

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

当然,验证不多,也不灵活,但正是我一直在寻找的。​​p>

【讨论】:

  • TypeError: Unicode-objects must be encoded before hashing
【解决方案2】:

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

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

【讨论】:

  • 谢谢。从你的回答中得到了我需要的东西。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-17
  • 2012-08-14
  • 2011-03-03
  • 2013-10-06
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
相关资源
最近更新 更多