Python之Django字符串的MD5加密和获得文件的MD5值

最近学习中需要用到一些不可逆的加密,就在网上搜索了一些资料,自己整理了一个Python md5加密类,方便以后自己使用

import hashlib
import os
class Encrypt:
      #这里可以加个混淆码
    key = 'hjhr!eu*gHT&HR7T15%616'
    error_msg = '';
    #字符串MD5加密
    def getStrMd5(self,str):
        hash_str = hashlib.md5()
        hash_str.update(self.key.encode("utf-8"))
        hash_str.update(str.encode("utf-8"))
        return hash_str.hexdigest()
    #获取文件的MD5
    def getFileMd5(self,filepath):
        if not os.path.isfile(filepath):
            self.error_msg = 'file does not exist'
            return False
        hash_str = hashlib.md5()
        file = open(filepath,'rb')
        while True:
            block = file.read(8096)
            if not block:
                break
            hash_str.update(block)
        file.close()
        return hash_str.hexdigest()
    #获取错误信息
    def getErrorMsg(self):
        return self.error_msg


使用方法如下

from aptest.Encrypt import Encrypt
md5 = Encrypt()
md5.getStrMd5('123456')
md5.getFileMd5(file)
md5.getErrorMsg()