【发布时间】:2011-07-12 16:48:57
【问题描述】:
我需要根据已经在 Django 中创建的用户,从另一个 python 软件提供对 Django 数据库的访问。我对整个访问没问题,我只需要一段代码来生成一个 Django 密码,就像 admin auth 模块一样。
最好的方法是什么?请注意,如果可能的话,我不想为此使用整个 Django 包。
非常感谢
【问题讨论】:
标签: django django-admin passwords
我需要根据已经在 Django 中创建的用户,从另一个 python 软件提供对 Django 数据库的访问。我对整个访问没问题,我只需要一段代码来生成一个 Django 密码,就像 admin auth 模块一样。
最好的方法是什么?请注意,如果可能的话,我不想为此使用整个 Django 包。
非常感谢
【问题讨论】:
标签: django django-admin passwords
知道它是如何工作的。我写了一个小函数来检查用户的密码:
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
创建和验证用户密码的完整代码在django.contrib.auth.models。
具体看User.set_password和User.check_password这两个方法。您需要提取这两个位和它们引用的 Django 代码,以根据 Django 创建和验证项目的用户密码。
【讨论】: