MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。
hashlib介绍
Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。
摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。
在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1、SHA224、SHA256、SHA384、SHA512和MD5算法等。
获取字符串md5值 和 文件md5值的函数封装列举:
import hashlib
def get_md5_from_str(data_str):
"""
获取字符串的md5值
:param data_str:
:return:
"""
restult = hashlib.md5(data_str.encode(encoding='utf-8')).hexdigest() # 返回摘要,作为十六进制数据字符串值
# restult = hashlib.md5(data_str.encode(encoding='utf-8')).digest() # 返回摘要,作为二进制数据字符串值
return restult
def get_md5_from_file(file_path):
"""
获取文件的md5值
:param file_path: 文件路径
:return: md5值
"""
m = hashlib.md5()
a_file = open(file_path, 'rb') # 需要使用二进制格式读取文件内容
m.update(a_file.read())
a_file.close()
return m.hexdigest()
if __name__ == "__main__":
str_temp = 'shenshang'
print(get_md5_from_str(str_temp))
print(get_md5_from_file('./get_md5.py'))