我正在使用名为" exiftool"的工具。从文件中提取二进制JPG。我想从那个文件计算一个sha512和。有什么好办法呢?
我提取二进制JPG的功能如下:
def getVisSig(filename):
""" Calculates visual signature using
imagemagick package. returns signature
"""
print("Calculating VisSig on %s" % filename)
result = subprocess.Popen(["exiftool","-b","-PreviewImage",
filename,], stdout=subprocess.PIPE)
输出是二进制的。我应该如何处理这个以计算sha512总和?我以为我可以在命令行中将输出传递给sha512sum并将结果字符串读入Python,但不确定是否有更好的方法?
答案 0 :(得分:1)
查看https://docs.python.org/3/library/hashlib.html
例如:
import hashlib
hashlib.sha512(b"asdfasdf").hexdigest()
# output: 'ce57d8bc990447c7ec35557040756db2a9ff7cdab53911f3c7995bc6bf3572cda8c94fa53789e523a680de9921c067f6717e79426df467185fc7a6dbec4b2d57'
所以你可以:
hashlib.sha512(result).hexdigest()