首页 > 编程语言 >Python 哈希函数

Python 哈希函数

时间:2022-10-12 17:57:46浏览次数:45  
标签:hashlib hash 函数 Python update 算法 哈希 md5

1. hashlib

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

如果您需要adler32或crc32哈希函数,则它们在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 Hash函数的应用

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

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()

标签:hashlib,hash,函数,Python,update,算法,哈希,md5
From: https://www.cnblogs.com/ruyi13/p/16785407.html

相关文章