我正在尝试创建一个简单的软件,其中包括具有密码的用户。我认为,与其将密码以文本形式保存在代码中,不如尝试学习一些有关散列的工作方式。然后,我尝试将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")
答案 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。)
顺便提一下,hex2
和pw1
是哈希表的实例:您可以向它们提供更多数据。在这种情况下,这样做是没有意义的,但是:
pw2
修改下一次对pw1.update(b'more data')
的调用返回的内容。