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使用多线程不断刷新网页的方法
Mar 31 Python
详细介绍Ruby中的正则表达式
Apr 10 Python
Python实现配置文件备份的方法
Jul 30 Python
python读写json文件的简单实现
Apr 11 Python
200 行python 代码实现 2048 游戏
Jan 12 Python
python leetcode 字符串相乘实例详解
Sep 03 Python
Python 使用list和tuple+条件判断详解
Jul 30 Python
Win10里python3创建虚拟环境的步骤
Jan 31 Python
python中有函数重载吗
May 28 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
Python打印不合法的文件名
Jul 31 Python
上手简单,功能强大的Python爬虫框架——feapder
Apr 27 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实现批量生成App各种尺寸Logo
2015/03/19 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
深入理解JavaScript中的箭头函数
2015/07/28 Javascript
Nodejs中 npm常用命令详解
2016/07/04 NodeJs
AngularJS入门之动画
2016/07/27 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
JS验证图片格式和大小并预览的简单实例
2016/10/11 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
Node+Express+MongoDB实现登录注册功能实例
2017/04/23 Javascript
Node.js 的模块知识汇总
2017/08/16 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
Vant Weapp组件踩坑:picker的初始赋值解决
2020/11/12 Javascript
ES6学习教程之Promise用法详解
2020/11/22 Javascript
Python常见文件操作的函数示例代码
2011/11/15 Python
python 遍历字符串(含汉字)实例详解
2017/04/04 Python
python语言中with as的用法使用详解
2018/02/23 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
Python3实现从排序数组中删除重复项算法分析
2019/04/03 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Pytorch 使用CNN图像分类的实现
2020/06/16 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
python基于exchange函数发送邮件过程详解
2020/11/06 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
债务纠纷委托书
2014/08/30 职场文书
2014年全国爱牙日宣传活动方案
2014/09/21 职场文书
2015年推普周活动方案
2015/05/06 职场文书
Python还能这么玩之用Python做个小游戏的外挂
2021/06/04 Python
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python