你不。。。你把一个散列保存到字典中(哈希是一种简单的不可逆编码)
例如:
md5("password") == '5f4dcc3b5aa765d61d8327deb882cf99'
然而,没有真正的方法从那回到密码
nothing_does_this('5f4dcc3b5aa765d61d8327deb882cf99') == "password"
(不完全正确。。。但离概念足够近)import hashlib
def create_users()
users = {}
while True:
username = raw_input("Enter Username:")
password = raw_input("Enter Password:")
users[username] = hashlib.md5(password).hexdigest()
if raw_input("continue?")[0].lower() != "y":
return users
def login(userdict):
username = raw_input("Username:")
password = raw_input("Password:")
return userdict.get(username,None) == hashlib.md5(password).hexdigest()
users = create_users()
if login(users):
print "Double Winning!!!"
else:
print "You Lose Sucka!!!"
正如所指出的,md5不是一个非常安全的哈希,有很多更好的哈希使用sha256仍然是相当好的,但我认为,bcrypt甚至更好(对于一些更好的定义)。。。但是md5是一个简单的哈希,有助于理解它们是什么。。在