Python hashlib常见摘要算法详解


Posted in Python onJanuary 13, 2020

这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等

计算出一个字符串的MD5值:

import hashlib
md5 = hashlib.md5()
md5.update('how to use md5 in python hashlib?'.encode("utf8")) #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码
print( md5.hexdigest())#返回十六进制
print( md5.digest()) #二进制

# 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:
md5 = hashlib.md5()
md5.update('how to use md5 in '.encode("utf8"))
md5.update('python hashlib?'.encode("utf8"))
print( md5.hexdigest())#返回十六进制

上述结果:

d26a53750bc40b38b65a520292f69306
b'\xd2jSu\x0b\xc4\x0b8\xb6ZR\x02\x92\xf6\x93\x06'
d26a53750bc40b38b65a520292f69306

计算出一个字符串SHA1值:

import hashlib
sha_1 = hashlib.sha1()
sha_1.update('how to use sha1 in '.encode("utf8"))  #需要指定转码 否则报错 update()必须指定要加密的字符串的字符编码
sha_1.update('python hashlib?'.encode("utf8"))
print (sha_1.hexdigest())

# 如果数据量很大,可以分块多次调用update(),最后计算的结果是一样的:
sha2 = hashlib.sha1()
sha2.update('how to use sha1 in python hashlib?'.encode("utf8"))
print (sha2.hexdigest())

打印结果:

2c76b57293ce30acef38d98f6046927161b46a44

2c76b57293ce30acef38d98f6046927161b46a44

读取文件获取MD5值:

import os
import hashlib
#文件md5
def file_md5(pathandname):
  if os.path.isfile(pathandname):
    hashmd5 = hashlib.md5()
    file = open(pathandname, 'rb')
    while True:
      b = file.read(1024)
      if not b:
        break
      hashmd5.update(b)
    file.close()
    return hashmd5.hexdigest()
  else:
    return None

print(file_md5("C:\\Users\\Administrator\\Desktop\\V2.6.1_B511\\hvr_dec"))   #aef87d1d673ca52412b4a950a06b9557

读取文件base64

import base64
import os
# base64,参数为文件路径名
def file_base64(filepath):
  if os.path.isfile(filepath):
    with open(filepath, 'rb') as file:
      file_base64_str = base64.b64encode(file.read())
    return file_base64_str
  else:
    return None

读取sha256

import hmac
import hashlib
def get_hmacsha256(key, message):
  key_bytes = bytes(key, 'utf-8')
  message_bytes = bytes(message, 'utf-8')
  hmacsha256_str = hmac.new(key_bytes, message_bytes, digestmod=hashlib.sha256).hexdigest()
  return hmacsha256_str

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python下的twisted框架入门指引
Apr 15 Python
利用python求解物理学中的双弹簧质能系统详解
Sep 29 Python
浅谈flask中的before_request与after_request
Jan 20 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
Pandas时间序列基础详解(转换,索引,切片)
Feb 26 Python
Python装饰器实现方法及应用场景详解
Mar 26 Python
Python Tornado核心及相关原理详解
Jun 24 Python
python中的plt.cm.Paired用法说明
May 31 Python
刚学完怎么用Python实现定时任务,转头就跑去撩妹!
Jun 05 Python
Pytorch释放显存占用方式
Jan 13 #Python
pytorch 实现删除tensor中的指定行列
Jan 13 #Python
python基于event实现线程间通信控制
Jan 13 #Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 #Python
python、PyTorch图像读取与numpy转换实例
Jan 13 #Python
pytorch 彩色图像转灰度图像实例
Jan 13 #Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 #Python
You might like
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
2017/05/30 PHP
php5.6.x到php7.0.x特性小结
2019/08/17 PHP
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
简单的两种Extjs formpanel加载数据的方式
2013/11/09 Javascript
JavaScript返回网页中锚点数目的方法
2015/04/03 Javascript
详解javascript高级定时器
2015/12/31 Javascript
改变checkbox默认选中状态及取值的实现代码
2016/05/26 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
jQuery webuploader分片上传大文件
2016/11/07 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
vue构建单页面应用实战
2017/04/10 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
详解Vue2.0配置mint-ui踩过的那些坑
2018/04/23 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
2018/07/03 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
node全局变量__dirname与__filename的区别
2019/01/14 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
python制作图片缩略图
2019/04/30 Python
使用pytorch和torchtext进行文本分类的实例
2020/01/08 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
Canvas获取视频第一帧缩略图的实现
2020/11/11 HTML / CSS
英国工具中心:UK Tool Centre
2017/07/10 全球购物
委托书范文
2014/04/02 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
2014年英语教研组工作总结
2014/12/06 职场文书
2015年依法治校工作总结
2015/07/27 职场文书
毕业生的自我鉴定表范文
2019/05/16 职场文书