所以我正在编写一个简单的文件完整性监视器。我试图对文件的内容进行散列,并将其存储为基线。这是我的代码:
from base64 import encode
import hashlib
h =hashlib.sha512()
with open ("baseline.txt", 'r') as f:
contents = f.read()
h.update(contents.encode('utf8'))
hash = h.hexdigest
print(hash)
这是我的输出:
<built-in method hexdigest of _hashlib.HASH object at 0x000001E3096B5250>
我不确定是什么原因导致输出出现这种情况。我怀疑这与我打开文件的方式和文件的格式有关。如果你能帮助我或为我指明正确的方向,那就太好了。
hexdigest
是一个函数:(
尝试hash = h.hexdigest()
。
正如Guy所写,您需要使用h.hexdigest()
(带括号(,这是因为在Python中,调用不带括号的函数会返回到内存中对象的链接。用圆括号调用可以执行函数代码。以下是有关它的更多信息