python hashlib模块

2024-03-03 13:58
文章标签 python 模块 hashlib

本文主要是介绍python hashlib模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

hashlib用来替换md5和sha模块,并使他们的API一致。它由OpenSSL支持,支持如下算法:

md5,sha1, sha224, sha256, sha384, sha512

示例一:

import hashlib  
m = hashlib.md5()   #创建hash对象,md5:(message-Digest Algorithm 5)消息摘要算法,得出一个128位的密文  
print m             #<md5 HASH object @ 02B93250>  
m.update('python')  #更新哈希对象,以字符串为参数  
print m.digest()    #返回摘要,作为二进制数据字符串值  
print m.hexdigest() #返回摘要,作为十六进制数据字符串值    23eeeb4347bdd26bfc6b7ee9a3b755dd 
print m.digest_size #16,结果hash的大小,产生的散列的字节大小  
print m.block_size  #64,hash内部块的大小,The internal block size of the hash algorithm in bytes  print hashlib.md5('python').hexdigest()#简略写法   23eeeb4347bdd26bfc6b7ee9a3b755ddm1=m.copy()#复制 
print m    #<md5 HASH object @ 02B93250>
print m1   #<md5 HASH object @ 02B93200>
print m.hexdigest()==m1.hexdigest() #True 

示例二:使用new()创建指定加密模式的hash对象

import hashlib  
h = hashlib.new('md5')  
print h     #<md5 HASH object @ 029F3200>  
h.update('python')  
print h.hexdigest() #23eeeb4347bdd26bfc6b7ee9a3b755dd 
print h.block_size,h.digest_size
print hashlib.new('md5','python').hexdigest() #简略写法 23eeeb4347bdd26bfc6b7ee9a3b755dd   
#等效  
h1 = hashlib.md5()  
h1.update('python')  
print h1.hexdigest() #23eeeb4347bdd26bfc6b7ee9a3b755dd  
print h1.block_size,h1.digest_size 
print hashlib.md5('python').hexdigest() #简略写法 23eeeb4347bdd26bfc6b7ee9a3b755dd  
#列出所有加密算法  
print hashlib.algorithms#('md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512')

示例三:更新哈希对象以字符串为参数,如果同一个hash对象重复调用该方法,则 m.update(a);m.update(b) is equivalent to m.update(a+b)

data.py文件:

s = '''Loremipsum dolor sit amet, consectetur adipisicing elit,
sed doeiusmod tempor incididunt ut labore et dolore magna aliqua. Ut
enim ad minimveniam, quis nostrud exercitation ullamco laboris nisi
ut aliquip exea commodo consequat. Duis aute irure dolor in
reprehenderitin voluptate velit esse cillum dolore eu fugiat nulla
pariatur.Excepteur sint occaecat cupidatat non proident, sunt in
culpa quiofficia deserunt mollit anim id est laborum.'''

当前要执行的test.py文件:

import hashlib  
from data import s  
h =hashlib.md5()  
h.update(s)  
all_at_once=h.hexdigest()  
#增量更新,文件太大的时候,可以分多次读入  
def chunkmd5(size,text):  '''''Return parts of the text in size-based increments.'''  start=0  while start<len(text):  chunk=text[start:start+size]  yield chunk  start+=size  h1=hashlib.md5()  
for chunk in chunkmd5(64,s):  h1.update(chunk)  all_at_many_time= h1.hexdigest()  
print 'All at once     :',all_at_once  
print 'All at many time:',all_at_many_time  
print 'the two is same?:', (all_at_once ==all_at_many_time)
结果:

All at once     : fda376c90e12c5f0ec0c8dc86b056aa3
All at many time: fda376c90e12c5f0ec0c8dc86b056aa3
the two is same?: True

(完)


这篇关于python hashlib模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/769822

相关文章

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

使用Python绘制3D堆叠条形图全解析

《使用Python绘制3D堆叠条形图全解析》在数据可视化的工具箱里,3D图表总能带来眼前一亮的效果,本文就来和大家聊聊如何使用Python实现绘制3D堆叠条形图,感兴趣的小伙伴可以了解下... 目录为什么选择 3D 堆叠条形图代码实现:从数据到 3D 世界的搭建核心代码逐行解析细节优化应用场景:3D 堆叠图