以下是我的代码
from django.contrib.auth.models import User
u = User.objects.get(username='test')
user.password
u'sha1$c6755$66fc32b05c2be8acc9f75eac3d87d3a88f513802
答案 0 :(得分:0)
Django没有 加密密码 ,它称为 散列 。
在这里您可以阅读Fundamental difference between Hashing and Encryption algorithms
此外,
引用一个answer from here,
散列不是加密(而是散列),因此我们不会“解密” MD5散列,因为它们首先没有被“加密”。
散列是单向的,但是是确定性的:散列相同值的两倍,并且得到相同输出的两倍。因此,破解MD5散列是关于尝试潜在的输入(密码)直到找到匹配项。当输入的是“人类用户想出的密码”时,它会很好地工作,因为在选择密码时,人类用户非常缺乏想象力。
现在是您的问题,
如何在Django中解密数据库中的加密数据?
您不能这样做!
UDPATE
登录时如何检查给定的密码是否匹配?
您可以为此使用authenticate()
方法