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并发获取snmp信息及性能测试
Mar 27 Python
浅谈对yield的初步理解
May 29 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
解决python删除文件的权限错误问题
Apr 24 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Django打印出在数据库中执行的语句问题
Jul 25 Python
Python中*args和**kwargs的区别详解
Sep 17 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
自学python用什么系统好
Jun 23 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 Python
用python修改excel表某一列内容的操作方法
Jun 11 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
第1次亲密接触PHP5(1)
2006/10/09 PHP
基于session_unset与session_destroy的区别详解
2013/06/03 PHP
php生成shtml类用法实例
2014/12/09 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
PHP使用OB缓存实现静态化功能示例
2019/03/23 PHP
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
Jquery给当前页或者跳转后页面的导航栏添加选中后样式的实例
2016/12/08 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
微信小程序 图片上传实例详解
2017/05/05 Javascript
JavaScript上传文件时不用刷新页面方法总结(推荐)
2017/08/15 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
python django 实现验证码的功能实例代码
2017/05/18 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
python钉钉机器人运维脚本监控实例
2019/02/20 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
django中的数据库迁移的实现
2020/03/16 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
Python ellipsis 的用法详解
2020/11/20 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
Belle Maison倍美丛官网:日本千趣会旗下邮购网站
2016/07/22 全球购物
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
大专生毕业的自我评价
2014/02/06 职场文书
解决thinkphp6(tp6)在状态码500下不报错,或者显示错误“Malformed UTF-8 characters”的问题
2021/04/01 PHP
HTML5中 rem适配方案与 viewport 适配问题详解
2021/04/27 HTML / CSS
python神经网络编程之手写数字识别
2021/05/08 Python
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Python max函数中key的用法及原理解析
2021/06/26 Python