我有一张更改密码申请表,用户可以在里面输入他们的旧密码。
这个旧密码是md5格式。
如何将数据库中的md5值与用户输入的旧密码进行比较
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"
我不认为
oldpasswd_db
是MD5。它更像是散列方法(本例中是SHA1)、salt和密码散列本身的组合。尝试将salt值与密码连接起来:
不是md5,是sha1-
"sha1$xxx
。你得用sha1函数来代替。 在http://docs.python.org/library/sha.html有关于这个的文档
你放在那里的散列是一个咸sha1 hexdigest,因为django(可能还有很多其他人)默认存储它。
验证它的代码在contrib/auth/models.py中。从这里可以看到,默认情况下django与md5一起工作。您只需将旧哈希更新为以下格式:
如果您的散列还没有被salt,那么将salt保留为空(
md5$$<hash>
),但是在用户下次执行有效登录时将散列更新为sha1。相关问题 更多 >
编程相关推荐