Python:计算md5时的奇怪输出
当我用Python计算一个文件的MD5时,我得到了一个奇怪的输出。 我的职能:Python:计算md5时的奇怪输出,python,md5,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() 输出: 我需要把它转换
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()
输出:
我需要把它转换成utf8或者什么
摘要
将摘要作为表示字节数组的二进制字符串返回。如果您希望您的摘要以十六进制显示,例如向用户显示,请使用hexdigest
方法
另外,
md5
已被弃用,您应该改用。最后,您的函数没有使用block\u size
参数-它总是将整个文件读入内存以计算摘要。md5
不推荐使用。您应该改用hashlib
。非常感谢。hexdigest有效!是的…我忘记了块大小,我被迫使用python 2.2,所以我不能使用hashlib,也找不到适用于windows的hashlib等等。。。再次感谢你DHmm。。。为什么python MD5与同一文件的php/visual basic MD5不同?@Cataclismo可能您忘记了以二进制模式打开该文件?无论如何,这似乎是一个新问题的材料——当然,有更多的信息和可复制的例子。。。