无法完全了解哈希的工作原理{python}

时间:2019-03-06 01:57:42

标签: python hash md5

我正在尝试创建一个简单的软件,其中包括具有密码的用户。我认为,与其将密码以文本形式保存在代码中,不如尝试学习一些有关散列的工作方式。然后,我尝试将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")

1 个答案:

答案 0 :(得分:1)

hashlib实例的input { file { path => "/PRTGBeat/data/generated/*.json" mode => "read" sincedb_path => "/dev/null" start_position => "beginning" file_completed_action => "log_and_delete" file_completed_log_path => "/PRTGBeat/data/processed/AllDocuments.log" } } filter { mutate { replace => [ "message", "%{message}" ] gsub => [ 'message','\n',''] } if [message] =~ /^{.*}$/ { json { source => message } } } output { elasticsearch { hosts => ["my host"] user => "elastic" password => "mypasword" } } 部分是函数本身。您必须调用它:

hexdigest

例如。现在,您可以比较两个字符串hex1 = pw1.hexdigest() hex2 = pw2.hexdigest() hex1

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

顺便提一下,hex2pw1是哈希表的实例:您可以向它们提供更多数据。在这种情况下,这样做是没有意义的,但是:

pw2

修改下一次对pw1.update(b'more data') 的调用返回的内容。