0

当我在 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()

输出 :

输出 http://img51.imageshack.us/img51/6615/20j7.png

我需要将其转换为 utf8 还是什么?!

4

1 回答 1

1

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

此外,正如 Cfreak 所指出的md5不推荐使用,您应该hashlib改用。最后,您的函数没有使用该block_size参数 - 它总是将整个文件读入内存以计算摘要。

于 2013-09-14T18:05:49.310 回答