当我在Python中为一个文件计算MD5时,我得到一个奇怪的输出。 我的功能:
def md5_for_file(self, fname, block_size=2**20):
f = open(fname)
data = f.read()
m = md5.new()
if len(data)>0:
m.update(data)
f.close()
return m.digest()
输出:
output http://img51.imageshack.us/img51/6615/20j7.png
我需要将其转换为utf8或什么?!
答案 0 :(得分:1)
digest
将摘要作为表示字节数组的二进制字符串返回。如果您想要十六进制的摘要,例如要将其显示给用户,请改用hexdigest
方法。
此外,不推荐as pointed out by Cfreak,md5
,您应该使用hashlib
。最后,您的函数没有使用block_size
参数 - 它总是将整个文件读入内存以计算摘要。