Python中hashlib模块
来源:互联网 发布:维棠下载器 mac版 编辑:程序博客网 时间:2024/05/21 06:35
1. 介绍hashlib
hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512. 另外,模块中所定义的 new(name, string=”) 方法可通过指定系统所支持的hash算法来构造相应的hash对象.
2. hashlib的使用
- a. 各hash算法的使用示例
from hashlib import md5, sha1, sha224, sha256, sha384, sha512from pprint import pprinthash_funcs = [md5, sha1, sha224, sha256, sha384, sha512]def hash_show(s): result = [] for func in hash_funcs: s_hash_obj = func(s) s_hash_hex = s_hash_obj.hexdigest() result.append((s_hash_obj.name, s_hash_hex, len(s_hash_hex))) return resultif __name__ == '__main__': s = 'hello python' rs = hash_show(s) pprint(rs)
- b. 一个 md5 的使用示例
from hashlib import md5m1 = hashlib.md5() # 构造hash对象m1.update('hello')m1.update(' ')m1.update('python')m2 = hashlib.md5('hello python')print m1.hexdigest() == m2.hexdigest() # 两种方式的效果相同
- c. 使用 new(name, string=”) 构造新的哈系对象
import hashlibh = hashlib.new('ripemd160', 'hello python') # ripemd160是一个160位的hash算法. ripemd系列算法基于md4, md5.print h.hexdigest()
3. hashlib的实现
Python 并没有在 hashlib 中提供各种hash算法的实现, 只是提供了一个接口调用.相当于 Linux下的软链接或者 Windows 下的快捷方式一样. Linux 环境下,hashlib 中各hash函数的实现在 _hashlib.x86_64-linux-gun.so 中(具体路径为 /usr/lib/python2.7/lib-dynload/_hashlib.x86_64-linux-gun.so,各不同版本或安装位置的不同,对应相关参数也不同).在系统未提供该共享库的情况下,其实现是 Python 内建的 _md5, _sha, _sha256以及 _sha512.
4. hashlib中各hash函数的介绍
- md5: Message Digest Algorithm 5(消息摘要算法第五版)
信息摘要算法可以用于确保信息传输完整一致.当然,也有用在加密上的,比如有的数据库在存储用户数据时,选择使用md5加密用户密码.也许,还有连用户名一起加密的.记得之前参加数学建模时,最终提交方案的时候就是用的md5做摘要.在 md5 之前有流行的 md2, md3与 md4 算法,后来罗纳德·李维斯特(Ronald L. Rivest.他就是rsa算法命名中的r,2002年的时候还得了图灵奖)继续改进发明了md5.该算法依然被大量使用,不过,由于其安全性问题,未来的话可能会越来越少的人继续使用了吧. - sha: Secure Hash Algorithm(安全哈希算法)
sha是美国国家标准与技术研究院与美国国家安全局设计,从94年以来被广泛使用的加密算法.sha系列中的sha1, sha224, sha2556适用于长度不超过2^64二进制位的消息。sha384和sha512适用于长度不超过2^128二进制位的消息。不过,这个也不太安全.2005年的时候国内王小云教授及其团队在sha1算法的破译上就已经取得了很大的成就.今年谷歌已经攻破了sha1算法.另外,Matthew Green(https://twitter.com/matthew_d_green)在这一领域也有不错的成就.
1 0
- Python中hashlib模块
- python中hashlib模块
- Python中hashlib模块, 快捷加密数据
- Python hashlib模块
- python模块之hashlib
- Python hashlib模块
- python模块之hashlib
- python hashlib模块
- python 模块学习 hashlib
- Python hashlib模块
- Python hashlib、hmac模块
- python 模块学习 hashlib
- python 模块学习 hashlib
- python hashlib 模块
- python hashlib模块
- Python的hashlib模块
- python 模块学习 hashlib
- Python的hashlib模块
- 如何获得exe当前路径
- VMware 12 许可密钥
- 根据datetimepicker选择的日期计算年龄
- SpringMVC 返回json
- C++ 读取文件内容到data 结构体 structure
- Python中hashlib模块
- 杭电 1720 A+B Coming 十六进制转化为十进制
- 父类引用指向子类对象属性值
- Fragment生命周期完全解析
- 不正经运维狗的习题12
- android端基于socket的局域网内服务器与客户端加密通信
- C++抽象编程——数据文件的各种输出方式
- innerdb
- C++ 读取文件内容到指定类型的变量