无法完全理解哈希是如何工作的{python}

问题描述 投票:0回答:1

我正在尝试创建一个包含用户密码的简单软件。我认为不是将代码中的密码保存为文本,也许可以尝试学习一下哈希如何工作。然后我尝试将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")
python hash md5
1个回答
1
投票

hashlib实例的hexdigest部分是函数本身。你必须打电话给它:

hex1 = pw1.hexdigest()
hex2 = pw2.hexdigest()

例如。现在你可以比较两个字符串hex1hex2

(作为metatoaster said in a comment,不要使用md5。)

顺便提一下,请注意pw1pw2是哈希的实例:你可以为它们提供更多的数据。在这种情况下,这样做没有意义,但是:

pw1.update(b'more data')

修改下一次调用pw1.hexdigest()返回的内容。

© www.soinside.com 2019 - 2024. All rights reserved.