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()相关推荐

  1. python hashlib_Python hashlib模块实例使用详解

    这篇文章主要介绍了Python hashlib模块实例使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块主要的作用: 加密保 ...

  2. 【Python】hashlib模块实现MD5加密

    MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被计算机安全领域广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value), ...

  3. python hashlib_python hashlib模块

    hashlib hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 具体应用 #!/usr ...

  4. Python hashlib模块中的sha加密

    Python hashlib模块中的sha加密 一.sha简介 sha (Secure Hash Algorithm)模块与md5的作用相似,用于对信息进行加密. "Secure Hash ...

  5. Python——hashlib模块(MD5校验)

    摘要 主要是在python中使用MD5对下载后的文件是否完整进行校验. hashlib的基本概念 hash是一种算法,不同hash算法只是复杂度不一样.在python 3.x里代替了md5模块和sha ...

  6. python acme_Python Hashlib模块 · Seacme Huang

    Hashlib模块提供了常见的摘要算法,如MD5,SHA1等等 一.简介 Python中的hashlib模块是用来进行hash或者md5加密. 这里的加密,其实并非我们通常所说的加密,简单的说就是这种 ...

  7. Python中hashlib模块详解

    文章目录 一.hashlib的简介 二.hashlib的使用 1.常用属性 2.常用方法 3.使用示例 三.hashlib的特点 四.代码实操 1.举例子 2.应用场景案例 一.hashlib的简介 ...

  8. 递归、os.walk、内置函数、lambda、hashlib模块、md5加密、python安装第三方模块、操作mysql数据库...

    #递归就是函数自己调自己,一般递归都会有在什么情况下结束递归,一业可以有结束条件#递归最多死循环999次,递归不能设定次数# count=0# def abc():# global count# co ...

  9. python中hashlib模块

    我们在储存一些重要的数据的时候,通常会将这些数据进行加密后进行储存.python中的hashlib为我们提供了这样的功能,其中主要包括MD5,SHA1,SHA256,SHA384,SHA512 等常见 ...

最新文章

  1. 华为秘密作战计划曝光,重注研发AI芯片挑战英伟达,轮值董事长挂帅
  2. Nginx与Lua开发
  3. 关于winodows下编程c++遇到的引用文件路径问题
  4. 针对Linux ASP.NET MVC网站中 httpHandlers配置无效的解决方案
  5. 2 小时学会 springboot ( 附实例讲解 )
  6. camunda流程定义表无数据_【经验】数据可视化分析操作指南
  7. struts2的action中获得request response session 对象
  8. 【Android】16.5 Android内置的系统服务
  9. NetLog 大规模应用实战:Database-sharding 技术
  10. 搜狗输入法输出特殊符号快捷键
  11. Linux版本查看及PS1配置
  12. 深入理解Android相机体系结构之十
  13. 用java画企鹅_Fireworks绘制简笔QQ企鹅图像
  14. 全球400多支团队参加,鹅厂是如何拿下冠军的
  15. 祝贺 StreamX 开源一周年
  16. centos 6 安装 net-speeder
  17. 数学建模里面灵敏度分析怎么写
  18. 什么模式才是安防渠道商们的未来?
  19. 分享一款将中文网站源代码直接生成英文网站的工具
  20. 变频器LED显示灯闪烁_东莞变频器常见故障维修华中伺服驱动器维修

热门文章

  1. C程序对整数中设置为1的位数进行计数
  2. 关于显示和隐藏DIV标签
  3. Oracle常用数据字典表
  4. VMware ubuntu20.04 server随win10自动启动与关闭
  5. JQuery DataTables改变行或列的背景或字体颜色
  6. linux分区始柱号,找到了linux分区顺序错乱修复方法
  7. java 字符串是否包含字符串_在Java中,如何检查字符串是否包含子字符串(忽略大小写)?...
  8. java拓展接口_Java拓展接口-default关键词
  9. 企业微信怎么删除好友 企业微信如何删除成员
  10. 小技巧来助阵 玩转Google Chrome(谷歌浏览器)