哈希加密与 hashlib 与用户交互

2024-09-24 04:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个与用户交互的哈希函数。 其思想是用户选择他/她想要的哈希(即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是一个字符串(正如我所声明的那样),我的问题是:我如何转换或以其他方式使其按预期使用?在


Tags: 函数字符串用户程序datareturn错误update
1条回答
网友
1楼 · 发布于 2024-09-24 04:31:42

您可以使用^{}

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()左右,你必须先去掉括号。在

相关问题 更多 >