码迷,mamicode.com
首页 > 编程语言 > 详细

Python的hashlib模块学习

时间:2015-06-28 20:15:04      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:hashlib

python的hashlib模块提供一些常用的加密功能


例如获取字符串‘Nobody inspects the spammish repetition‘的MD5校验值

In [48]: import hashlib

In [49]: m=hashlib.md5()

In [50]: m.update(‘Nobody inspects‘)

In [51]: m.update(‘the spammish repetition‘)

In [52]: m.digest()
Out[52]: ‘%\x8d3\xf9,:k\xe0?\xbb0+\xc4K\x94S‘

In [53]: m.digest_size
Out[53]: 16

In [54]: m.block_size
Out[54]: 64

In [55]: m.hexdigest()
Out[55]: ‘258d33f92c3a6be03fbb302bc44b9453‘

In [56]: m.digest_size
Out[56]: 16

In [57]: m.block_size
Out[57]: 64



这里定义一个HASH对象m,使用hashlib模块提供的md5()函数,还可以是

md5(), sha1(), sha224(), sha256(), sha384(), and sha512()

也可以根据操作系统提供的HASH算法,使用new()选择OpenSSL库提供的加密算法

sha384和sha512在32位系统上使用会比较慢


update(arg)  更新HASH对象,重复使用update(arg)等价于一次更新多个字符串的组合

         m.update(a)和m.update(b)等价于m.update(a+b)



digest()   返回加密后的字符串

hexdigest()  返回加密码后的16进制字符串


digest_size  是加密后的哈希值字节

block_size  数据块大小





案例:

def getMd5(strFile):
    fh=open(strFile,"rb")
    m=md5()
    strRead=""
    while True:
          strRead=fh.read()
          if not strRead:
             break
          m.update(strRead)
    strMd5=m.hexdigest()
    if fh:
       fh.close()
    return strMd5


print getMd5(__file__)









参考文章:

https://docs.python.org/2.6/library/hashlib.html


本文出自 “Linux SA John” 博客,请务必保留此出处http://john88wang.blog.51cto.com/2165294/1668757

Python的hashlib模块学习

标签:hashlib

原文地址:http://john88wang.blog.51cto.com/2165294/1668757

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!