将django.contrib.auth.models.User密码,sha1反转为可读字符串

时间:2009-08-31 19:45:04

标签: django encryption

from django.contrib.auth.models import User
u = User.objects.get(username='test')
user.password
u'sha1$c6755$66fc32b05c2be8acc9f75eac3d87d3a88f513802

是否可以撤消此密码加密?

4 个答案:

答案 0 :(得分:17)

是的,这是可能的。你所需要的只是几百万年,而且是一台与太阳系相当的电脑。

答案 1 :(得分:17)

Sha-1是单向哈希。除了使用需要数百万年的蛮力攻击之外,它无法逆转。

有一些在线数据库允许您反转常用单词/单词组合的哈希值。但是,在计算哈希值之前,django会在密码中添加“salt”,因此您无法撤消django密码。

这就是使用哈希的原因。没有人能找到你的密码,甚至连sys管理员都没有: - )

答案 2 :(得分:8)

不,这就是重点。

如果您的用户忘记了密码,则必须重置密码。

答案 3 :(得分:1)

Django正在使用 sha1 ,这是密码哈希的单向哈希,加密前是“salt”密码。所以解密它们需要更长的时间(也许是我们的一生)。密码经过哈希处理,即使它们具有散列值,也无法解密密码。