如何在django中检索密码

时间:2012-05-16 15:55:55

标签: django

我们如何检索用户的密码?

u = User.objects.get(username__exact=username)
print u.password

显示sha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e

是否有从此编码字符串中找到密码的功能?

5 个答案:

答案 0 :(得分:22)

没有。根据设计,它是不可能的。但无论如何都不应该这样做。

答案 1 :(得分:8)

由于安全限制,密码哈希方法是一种方法。您需要重置该用户密码。

尝试使用set_password(raw_password)方法为用户提供新密码。请记住调用save()方法以确保将更改保存到数据库中。

u = User.objects.get(username__exact=username)
u.set_password(raw_password)
u.save()

答案 2 :(得分:3)

没有。而且不应该。作为安全性的一部分,密码在保存之前通过单向函数传递,因此如果数据库受到损害,密码就不会被泄露

您可以做的是用你知道的用户的密码替换。这是(好)网站的“忘记密码”功能如何工作:他们向您发送一个新的随机密码,而不是您的旧密码,因为他们(不应该)可以访问它

答案 3 :(得分:3)

不,该字段包含密码的盐渍哈希。从字符串我们知道它是SHA1函数。如果您有密码,您将能够生成相同的散列值作为足迹。出于安全原因,现在应该以经济的方式恢复密码(你仍然可以蛮力,但需要很长时间)。,

答案 4 :(得分:1)

您可以使用以下方法检查密码是否正确:

u.check_password("your password")

此方法和u.set_password("you password")解决了您所有的问题。

sha1$f0971$441cac8f604d49869e33ca125a76253a02fef64e是:

哈希函数算法$$哈希码