python hashlib_python hashlib模块及md5() 、sha()
hashlib模块是python2.5 以后出现的一个包,其主要涉及安全和加密。而且hashlib 得到openssl 的“支持” ,其支持openssl 库提供的所有算法,具体包括md5、sha1、sha224、sha256、sha512等。详细用法,可以通过pydoc hashlib 查看,这里结合两个简单的示例,看下其用法。
一、获取某字符串的md5值
比如在涉及到web 站内用户密码时,经常会将管理员帐户的密码进行md5加密后,再存入数据库。假设admin用户的密码为361way ,通过python代码可以进行如下操作:
>>> import hashlib
>>> m = hashlib.md5()
>>> m.update("361way")
>>> m.hexdigest()
4ac40dc92ce5bc8bbe3d28849f0be1e9
查看帮助时,会现还有一个digest方法。两者的区别如下:
md5.digest() 返回16字节的摘要,由传给update的string生成,摘要没有ascii字符
md5.hexdigest() 以16进制的形式返回摘要,32位
同样,还是上面的361way 字符,执行m.digest()的结果如下:
>>> m.digest()
'J\xc4\r\xc9,\xe5\xbc\x8b\xbe=(\x84\x9f\x0b\xe1\xe9'
如果对hashlib的方法十分熟练的话,上面的代码可以直接简写为如下:
>>> import hashlib
>>> hashlib.md5("361way").hexdigest()
'4ac40dc92ce5bc8bbe3d28849f0be1e9'
sha算法一样,只不过将md5方法换成相应的sha方法。不同的是sha算法执行出的结果更长,相应的比md5计算过程稍慢,所以md5经常用来做用户密码的存储。而sha1则经常用作数字签名。
二、确认文件的md5值
经常我们通过比对文件前后的md5 值 ,来确认文件是否被修改。该部分实现的代码的功能和linux 下md5sum指令的功能相同。具体代码如下:
#!/usr/bin/python
#encoding=utf-8
import io
import sys
import hashlib
import string
def printUsage():
print ('''Usage: [python] pymd5sum.py ''')
def main():
if(sys.argv.__len__()==2):
#print(sys.argv[1])
m = hashlib.md5()
file = io.FileIO(sys.argv[1],'r')
bytes = file.read(1024)
while(bytes != b''):
m.update(bytes)
bytes = file.read(1024)
file.close()
#md5value = ""
md5value = m.hexdigest()
print(md5value+"\t"+sys.argv[1])
#dest = io.FileIO(sys.argv[1]+".CHECKSUM.md5",'w')
#dest.write(md5value)
#dest.close()
else:
printUsage()
main()
具体代码我存放到我的github页面上。
为避免文件过大,内存使用率过高,这里在读取文件时是以1024 byte为单位进行读取 。
其他相关模块还有hmac ,主要用于进行密码消息签名与验证。
python hashlib_python hashlib模块及md5() 、sha()相关推荐
- python hashlib_Python hashlib模块实例使用详解
这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...
- 【Python】hashlib模块实现MD5加密
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value), ...
- python hashlib_python hashlib模块
hashlib hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 具体应用 #!/usr ...
- Python hashlib模块中的sha加密
Python hashlib模块中的sha加密 一.sha简介 sha (Secure Hash Algorithm)模块与md5的作用相似,用于对信息进行加密. "Secure Hash ...
- Python——hashlib模块(MD5校验)
摘要 主要是在python中使用MD5对下载后的文件是否完整进行校验. hashlib的基本概念 hash是一种算法,不同hash算法只是复杂度不一样.在python 3.x里代替了md5模块和sha ...
- python acme_Python Hashlib模块 · Seacme Huang
Hashlib模块提供了常见的摘要算法,如MD5,SHA1等等 一.简介 Python中的hashlib模块是用来进行hash或者md5加密. 这里的加密,其实并非我们通常所说的加密,简单的说就是这种 ...
- Python中hashlib模块详解
文章目录 一.hashlib的简介 二.hashlib的使用 1.常用属性 2.常用方法 3.使用示例 三.hashlib的特点 四.代码实操 1.举例子 2.应用场景案例 一.hashlib的简介 ...
- 递归、os.walk、内置函数、lambda、hashlib模块、md5加密、python安装第三方模块、操作mysql数据库...
#递归就是函数自己调自己,一般递归都会有在什么情况下结束递归,一业可以有结束条件#递归最多死循环999次,递归不能设定次数# count=0# def abc():# global count# co ...
- python中hashlib模块
我们在储存一些重要的数据的时候,通常会将这些数据进行加密后进行储存.python中的hashlib为我们提供了这样的功能,其中主要包括MD5,SHA1,SHA256,SHA384,SHA512 等常见 ...
最新文章
- 华为秘密作战计划曝光,重注研发AI芯片挑战英伟达,轮值董事长挂帅
- Nginx与Lua开发
- 关于winodows下编程c++遇到的引用文件路径问题
- 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
- 2 小时学会 springboot ( 附实例讲解 )
- camunda流程定义表无数据_【经验】数据可视化分析操作指南
- struts2的action中获得request response session 对象
- 【Android】16.5 Android内置的系统服务
- NetLog 大规模应用实战:Database-sharding 技术
- 搜狗输入法输出特殊符号快捷键
- Linux版本查看及PS1配置
- 深入理解Android相机体系结构之十
- 用java画企鹅_Fireworks绘制简笔QQ企鹅图像
- 全球400多支团队参加,鹅厂是如何拿下冠军的
- 祝贺 StreamX 开源一周年
- centos 6 安装 net-speeder
- 数学建模里面灵敏度分析怎么写
- 什么模式才是安防渠道商们的未来?
- 分享一款将中文网站源代码直接生成英文网站的工具
- 变频器LED显示灯闪烁_东莞变频器常见故障维修华中伺服驱动器维修
热门文章
- C程序对整数中设置为1的位数进行计数
- 关于显示和隐藏DIV标签
- Oracle常用数据字典表
- VMware ubuntu20.04 server随win10自动启动与关闭
- JQuery DataTables改变行或列的背景或字体颜色
- linux分区始柱号,找到了linux分区顺序错乱修复方法
- java 字符串是否包含字符串_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...
- java拓展接口_Java拓展接口-default关键词
- 企业微信怎么删除好友 企业微信如何删除成员
- 小技巧来助阵 玩转Google Chrome(谷歌浏览器)