Python生成字符串或文件的MD5和SHA256哈希值的方法

         Python哈希值的相关方法均包含在hashlib库中。hashlib库提供生成哈希值的基础方法,对于一般用途应该足够了。当然也可以进行自定义,在hashlib提供的方法的基础上,编写一些特殊需求的代码模块module。

        在hashlib库中,一般是先构造一个哈希生成器 -- generator,通过生成器的update方法传入比特数据,最后由digest或hexdigest方法产生哈希值。digest方法提供的是二进制的,hexdigest生成的是十六进制的字符串。

        生成字符串的哈希值,可通过字符串本身自带的方法转换为二进制数据:[str].encode('utf-8')。字符串自带的encode方法默认使用UTF-8编码集。

        文件的哈希值生成方法与字符串的类似。将文件以二进制的数据格式读取,赋值于变量,然后通过update方法传入生成器处理得出哈希值。

"""
@author: MR.N
@created: 2021/07/19 Mon. 20:35
@version: 1.0
@free

"""
import hashlib

# 生成字符串的MD5值
def md5(content=None):
    if content is None:
        return ''
    md5gen = hashlib.md5()
    md5gen.update(content.encode())
    md5code = md5gen.hexdigest()
    md5gen = None
    return md5code

# 生成文件的MD5值
def md5_file(content=None):
    if content is None:
        return ''
    md5gen = hashlib.md5()
    with open(content, 'wb') as fd:
        data = fd.read()
    md5gen.update(data)
    md5code = md5gen.hexdigest()
    md5gen = None
    return md5code

# 生成字符串的SHA256值
def sha256(content=None):
    if content is None:
        return ''
    sha256gen = hashlib.sha256()
    sha256gen.update(content.encode())
    sha256code = sha256gen.hexdigest()
    sha256gen = None
    return sha256code

# 生成文件的SHA256值
def sha256_file(content=None):
    if content is None:
        return ''
    sha256gen = hashlib.sha256()
    with open(content, 'wb') as fd:
        data = fd.read()
    sha256gen.update(data)
    sha256code = sha256gen.hexdigest()
    sha256gen = None
    return sha256code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值