Python:计算md5时的奇怪输出

时间:2013-09-14 18:04:23

标签: python md5

当我在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或什么?!

1 个答案:

答案 0 :(得分:1)

digest将摘要作为表示字节数组的二进制字符串返回。如果您想要十六进制的摘要,例如要将其显示给用户,请改用hexdigest方法。

此外,不推荐as pointed out by Cfreakmd5,您应该使用hashlib。最后,您的函数没有使用block_size参数 - 它总是将整个文件读入内存以计算摘要。