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

原文地址:http://www.cnblogs.com/ruyi13/p/16785407.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性