title: Python, get base64-encoded MD5 hash of an image object
body: <p>I need to get a base64-encoded MD5 hash of an object, where the object is an image stored as a file, fname.</p>
  
  <p>I've tried this:</p>
  
  <pre><code>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()
  </code></pre>
  
  <p>However, I don't think this is right because it returns a string with too many characters. My understanding is that it needs to be 24 characters long. I get</p>
  
  <pre><code>NjJiM2RlOWMzOTYxYmM3MDI5Y2Q1NzdjOTQ5YWRlYTQ=
  </code></pre>
  
  <p>I've tried a few other similar ways as well, for example, one that does not do the chunk loop thing. They all return the same string. </p>
  
  <p>(My later actions that need the base64-encoded MD5 hash fail, and I'm thinking this could be why.)</p>