首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python md5密码值

Python md5密码值
EN

Stack Overflow用户
提问于 2010-10-25 15:33:23
回答 4查看 10.7K关注 0票数 3

我有这个更改密码请求form.In,用户可以输入他们的旧密码。

此旧密码为md5格式。

如何将db中的oldpassword值与用户输入的md5进行比较

代码语言:javascript
复制
 import md5

 oldpasswd_byuser=str("tom")
 oldpasswd_db="sha1$c60da$1835a9c3ccb1cc436ccaa577679b5d0321234c6f"
 opw=     md5.new(oldpasswd_byuser)
 #opw=     md5.new(oldpasswd_byuser).hexdigest()
 if(opw ==      oldpasswd_db):
    print "same password"
 else:
     print "Invalid password" 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-25 15:49:33

您放在其中的散列是一个加盐的sha1十六进制摘要,因为django (可能还有许多其他的)默认情况下会存储它。

验证它的代码在contrib/auth/models.py中。从那里您可以看到,django默认情况下与md5一起工作。您所要做的就是将旧的散列更新为以下形式:

代码语言:javascript
复制
md5$<salt>$<hash>

如果您的散列尚未加盐,则将盐保留为空(md5$$<hash>),但在用户下次执行有效登录时将散列更新为sha1。

票数 3
EN

Stack Overflow用户

发布于 2010-10-25 15:40:44

我不认为oldpasswd_db是MD5。它看起来更像是散列方法(本例中为SHA1)、salt和密码散列本身的组合。

尝试将Salt值与密码连接起来:

代码语言:javascript
复制
import hashlib
hashlib.sha1('c60datom').hexdigest()
票数 2
EN

Stack Overflow用户

发布于 2010-10-25 15:38:24

不是md5,是sha1 - "sha1$xxx

你必须使用sha1函数来代替。在http://docs.python.org/library/sha.html上有一篇关于这方面的文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4012616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档