gpt4 book ai didi

python - 通过用户交互使用 hashlib 进行哈希处理

转载 作者:行者123 更新时间:2023-12-01 05:47:02 25 4
gpt4 key购买 nike

我正在尝试创建一个具有用户交互的哈希函数。这个想法是,用户选择他/她想要的哈希值(即 md5、sha1 等),然后程序完成其余的工作。

我的代码:

hashstring = "hashlib" + finalHash

filePath = open(chosenFile, 'rb')

data = filePath.read(8192)

if not data:
return

hashstring.update(data) # The line that causes error

return hashstring.hexdigest()

finalHash 来自包含(假设选择了 md5)'.md5()' 的字典,因此来自 hashstring 的字符串是 'hashlib.md5().

我收到错误:AttributeError: 'str' object has no attribute 'update',该错误向我指出了明显的情况:hashstring 是一个字符串(因为我声明它),我的问题是:我如何转换或以其他方式使其按预期可用?

最佳答案

您可以使用getattr :

import hashlib
chosenFile = '/etc/passwd'
finalHash = input('Which hash function?') # raw_input in Python 2
assert finalHash in ['md5', 'sha1'] # Optional
h = getattr(hashlib, finalHash)
h.update(open(chosenFile, 'rb').read())
print(h.hexdigest())

请注意,输入内容不得包含点或括号。如果您想允许用户输入 md5() 等内容,则必须先去掉括号。

关于python - 通过用户交互使用 hashlib 进行哈希处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15746291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com