如何在Django中解密数据库中的加密数据?

时间:2018-08-18 06:37:30

标签: django python-3.x

以下是我的代码

from django.contrib.auth.models import User

u = User.objects.get(username='test')
user.password
u'sha1$c6755$66fc32b05c2be8acc9f75eac3d87d3a88f513802

1 个答案:

答案 0 :(得分:0)

Django没有 加密密码 ,它称为 散列

在这里您可以阅读Fundamental difference between Hashing and Encryption algorithms

此外,

引用一个answer from here

  

散列不是加密(而是散列),因此我们不会“解密” MD5散列,因为它们首先没有被“加密”。

     

散列是单向的,但是是确定性的:散列相同值的两倍,并且得到相同输出的两倍。因此,破解MD5散列是关于尝试潜在的输入(密码)直到找到匹配项。当输入的是“人类用户想出的密码”时,它会很好地工作,因为在选择密码时,人类用户非常缺乏想象力。


现在是您的问题,

  

如何在Django中解密数据库中的加密数据?

您不能这样做!



UDPATE

  

登录时如何检查给定的密码是否匹配?

您可以为此使用authenticate()方法