【发布时间】:2019-07-27 14:28:20
【问题描述】:
我正在尝试创建一个简单的软件,其中包含有密码的用户。我认为与其将代码中的密码保存为文本,不如尝试了解一下哈希的工作原理。然后我尝试将 hashlib 库用于 python。 对我来说,这段代码应该能够看到密码 x 和 y 匹配,因此继续假设的“登录”,但由于某种原因,它并没有做我想要做的事情。有语法错误吗?密码匹配是否以不同的方式工作?我需要帮助让软件比较 2 个哈希值并因此登录。
import hashlib
pw1=hashlib.md5(input("please enter your password").encode('utf-8'))
pw2=hashlib.md5(input("please re-enter your password").encode('utf-8'))
if pw1.hexdigest == pw2.hexdigest:
print("Success. Passwords match")
if pw1.hexdigest != pw2.hexdigest:
print("Failure. Passwords do not match")
【问题讨论】:
-
对于密码哈希,这个thread 是一个有用的起点。请注意,使用 md5sum 对密码进行哈希处理并不是一种好的/安全的方法,并且在该线程中有更详细的说明,说明了所做的工作以及如何以更安全的方式执行此操作。
-
@metatoaster 谢谢!该线程对于散列密码的方法非常有帮助,但是我读过的许多其他人也主要谈论为什么 md5 不好或为什么 bcrypt 好,但我想我被困在更早的一步,我使用 md5 只是因为它突然出现在我的脑海中,并且在编写软件本身时实际上不会这样做。但是我仍然不明白为什么 python 没有像我想象的那样比较哈希。