Python 哈希函数

1. hashlib

模块实现了许多不同安全散列和消息摘要算法的通用接口。包括FIPS安全哈希算法SHA1SHA224SHA256SHA384SHA512以及RSA的MD5算法。

如果您需要adler32crc32哈希函数,则它们在zlib模块中可用。

1. hashlib 的基本用法

散列算法,总是存在该模块中的构造是md5()sha1()sha224()sha256()sha384(),和sha512()

>>> hash = hashlib.md5() # 创建个MD5对象
>>> hash.update(b'string') # 向对象中添加要进行哈希的字符串
>>> hash.digest() # 返回摘要
>>> hash.hexdigest() # 返回十六进制摘要

例如: 用于md5()创建一个MD5哈希对象。现在可以使用该update()方法为任何字符串提供此对象。在任何时候,都可以使用digest()or hexdigest()方法向它提供输入到它的字符串的摘要。

>>> import hashlib
>>> md5_1 = hashlib.md5()
>>> md5_1.update(b"Never Giv") # 注意字符串要转换成字节类型
>>> md5_1.update(b"er up!") 
>>> md5_1.digest()
b'\x17Z\xe7\xf1\xde\xbe5\xa4\x84\x8c\xbc\xbf\xb6Y>M'
>>> md5_1.hexdigest()
'175ae7f1debe35a4848cbcbfb6593e4d'
>>> # pytnic
>>> hashlib.md5(b"Nerver Giver up!").hexdigest()
'175ae7f1debe35a4848cbcbfb6593e4d'

hashlib中有以下方法:

>>> hashlib.algorithms_available # 返回模块支持的哈希算法的名字
>>> hash.digest_size # 返回散列的大小(以字节为单位)
>>> hash.block_size  # 返回散列算法内部块的大小(以字节为单位)

1.2 hashlib的应用

【应用】 :对文件进行哈希

import hashlib
import os 
def hash(file_path):
    h = hashlib.md5() # 创建MD5哈希对象
    f = open(file_path,"rb") 
    size = os.path.getsize(file_path) # 获取文件大小
    for i in range(size):
        data = f.read(1) # 读取一个字节的数据
        h.update(data)  
    f.close()
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值