Python中hashlib模块
2024-10-16 00:39:14
介绍hashlib
hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512. 另外,模块中所定义的 new(name, string=”) 方法可通过指定系统所支持的hash算法来构造相应的hash对象.
import hashlib m = hashlib.md5()
print(m) m.update('hello world'.encode('utf-8'))
print(m.hexdigest()) m.update('pis'.encode('utf-8'))
print(m.hexdigest()) m2 = hashlib.md5()
m2.update('hello worldpis'.encode('utf-8'))
print(m.hexdigest()) s=hashlib.sha256()
s.update('hello world'.encode('utf-8'))
print(s.hexdigest())
<md5 HASH object @ 0x011F56E0>
5eb63bbbe01eeed093cb22bb8f5acdc3
195dce4dff55989fe6508ef45b525d8b
195dce4dff55989fe6508ef45b525d8b
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
a. 各hash算法的使用示例
from hashlib import md5, sha1, sha224, sha256, sha384, sha512
from pprint import pprint
hash_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 result
if __name__ == '__main__':
s = 'hello python'.encode('utf-8')
rs = hash_show(s)
pprint(rs)
b. 一个 md5 的使用示例
from hashlib import md5
m1 = 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 hashlib
h = hashlib.new('ripemd160', 'hello python') # ripemd160是一个160位的hash算法. ripemd系列算法基于md4, md5.
print h.hexdigest()
最新文章
- .net自定义WebService WSDL
- ubuntn 安装 MySQL
- IE6 IE7 不支持 JSON
- DataGrid Column Group (合并表头)
- GIT GUI的使用(转)
- 目标识别:Bag-of-words表示图像
- php SESSION 不能跨页面传递
- JavaScript--对象+函数
- Visual Studio 启动加速
- 仿OpenStack开发云计算管理软件
- html部署到tomcat
- CS231n 2017 学习笔记01——KNN(K-Nearest Neighbors)
- 解决在C#(.net)按字节数截取字符串最后出现乱码的问题
- python 集合去重
- webpack 代码优化压缩方法
- golang etcdclientv3使用说明
- django 1.11 目录
- C++常见的概念
- 2017-07-29 中文代码示例教程之Java编程一天入门
- terminate called after throwing an instance of &#39;std::bad_alloc&#39;