Python,获取图像对象的base64编码的MD5哈希

发布于 2021-01-29 16:07:28

我需要获取对象的base64编码的MD5哈希,其中该对象是存储为文件fname的图像。

我已经试过了:

def get_md5(fname):
    hash = hashlib.md5()
    with open(fname) as f:
        for chunk in iter(lambda: f.read(4096), ""):
            hash.update(chunk)
    return hash.hexdigest().encode('base64').strip()

但是,我认为这是不对的,因为它返回的字符串包含太多字符。我的理解是它必须为24个字符长。我懂了

NjJiM2RlOWMzOTYxYmM3MDI5Y2Q1NzdjOTQ5YWRlYTQ=

我也尝试了其他几种类似的方法,例如,一种不执行块循环的方法。它们都返回相同的字符串。

(我后来需要base64编码的MD5哈希的操作失败了,我想这可能是原因。)

关注者
0
被浏览
161
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我能够通过使用digest()而不是hexdigest()使其工作。然后最后一行变为:

    return hash.digest().encode('base64').strip()
    

    然后,结果为24个字符长,并且被Google Cloud Storage传输接受,这需要以base64编码的MD5哈希。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看