【Python】使用Python实现sha256、md5等加密算法生成哈希值

本文介绍如何使用Python的hashlib库生成SHA256及MD5哈希值,包括字符串和文件的加密处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. hashlib库

利用python的hashlib库,可以实现使用sha256md5等加密算法生成哈希值。

1.1 hash对象

hash对象描述
md5()md5算法加密
sha1()sha1算法加密
sha224()sha224算法加密
sha256()sha256算法加密
sha384()sha384算法加密
sha512()sha512算法加密

1.2 hash对象的方法

方法描述
copy()复制一个hash对象
digest()返回bytes类型的hash值
hexdigest()返回str类型的hash值
update()传入编码后的字符串

2. 使用sha256生成哈希值

2.1 生成字符串的哈希值

from hashlib import sha256
 
def generate_sha256_hashCode(plainText):
    plainTextBytes = plainText.encode('utf-8') # 字符串在哈希之前,需要编码
    encryptor = sha256()      
    encryptor.update(plainTextBytes)   
    hashCode = encryptor.hexdigest() 
    print(hashCode)
 
if __name__ == "__main__":
    generate_sha256_hashCode('123')

运行结果:

a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3

2.2 生成文件的哈希值

from hashlib import sha256
 
def generate_sha256_hashCode(filePath):
    with open(filePath, encoding="utf-8") as f:
        plainText = f.read()
    plainTextBytes = plainText.encode('utf-8')
    encryptor = sha256()   
    encryptor.update(plainTextBytes) 
    hashCode = encryptor.hexdigest() 
    print(hashCode)
 
if __name__ == "__main__":
    generate_sha256_hashCode('test.txt')

3. 使用md5生成哈希值

使用md5或其他算法,同sha256,只需要改动以下两行即可:

from hashlib import 算法名
encryptor = 算法名()

3.1 生成字符串的哈希值

from hashlib import md5
 
def generate_md5_hashCode(plainText):
    plainTextBytes = plainText.encode('utf-8') 
    encryptor = md5()   
    encryptor.update(plainTextBytes) 
    hashCode = encryptor.hexdigest() 
    print(hashCode)
 
if __name__ == "__main__":
    generate_md5_hashCode('123')

运行结果:

202cb962ac59075b964b07152d234b70

3.2 生成文件的哈希值

from hashlib import md5
 
def generate_md5_hashCode(filePath):
    with open(filePath, encoding="utf-8") as f:
        plainText = f.read()
    plainTextBytes = plainText.encode('utf-8')
    encryptor = md5()   
    encryptor.update(plainTextBytes) 
    hashCode = encryptor.hexdigest() 
    print(hashCode)
 
if __name__ == "__main__":
    generate_md5_hashCode('test.txt')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值