python md5加密 - hashlib

1,712 阅读1分钟

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5是最常见的摘要算法,速度很快,生成结果是固定的128 bit字节,通常用一个32位的16进制字符串表示。

hashlib介绍

Python的hashlib提供了常见的摘要算法,如MD5SHA1等等。

摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。

在python3的标准库中,已经移除了md5模块,而关于hash加密算法都放在hashlib这个标准库中,如SHA1SHA224SHA256SHA384SHA512MD5算法等。

获取字符串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'))