介绍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()

最新文章

  1. .net自定义WebService WSDL
  2. ubuntn 安装 MySQL
  3. IE6 IE7 不支持 JSON
  4. DataGrid Column Group (合并表头)
  5. GIT GUI的使用(转)
  6. 目标识别:Bag-of-words表示图像
  7. php SESSION 不能跨页面传递
  8. JavaScript--对象+函数
  9. Visual Studio 启动加速
  10. 仿OpenStack开发云计算管理软件
  11. html部署到tomcat
  12. CS231n 2017 学习笔记01——KNN(K-Nearest Neighbors)
  13. 解决在C#(.net)按字节数截取字符串最后出现乱码的问题
  14. python 集合去重
  15. webpack 代码优化压缩方法
  16. golang etcdclientv3使用说明
  17. django 1.11 目录
  18. C++常见的概念
  19. 2017-07-29 中文代码示例教程之Java编程一天入门
  20. terminate called after throwing an instance of &#39;std::bad_alloc&#39;

热门文章

  1. VirtualBox安装增强功能
  2. 11_Java面向对象_第11天(接口、多态)_讲义
  3. 简单 dp
  4. mysql 简单sql语句
  5. DBGrid添加行号编写笔记
  6. [Offer收割]编程练习赛23-freeloop
  7. 【Java并发编程】之十:使用wait/notify/notifyAll实现线程间通信的几点重要说明
  8. JVM工作原理 - 内存空间
  9. Ifter Party LightOJ - 1014(水题)
  10. Integer to Roman - LeetCode