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的Django框架中加载模版的方法
Jul 16 Python
python+django快速实现文件上传
Oct 24 Python
Python学习入门之区块链详解
Jul 25 Python
python遍历文件夹下所有excel文件
Jan 03 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
python从list列表中选出一个数和其对应的坐标方法
Jul 20 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
Python操作word文档插入图片和表格的实例演示
Oct 25 Python
Python 爬取淘宝商品信息栏目的实现
Feb 06 Python
Django Paginator分页器的使用示例
Jun 23 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php mysql数据库操作类
2008/06/04 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
php简单随机字符串生成方法示例
2017/04/19 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
JQuery 常用操作代码
2010/03/14 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
js 获取和设置css3 属性值的实现方法
2013/05/06 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
利用js+css+html实现固定table的列头不动
2016/12/08 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
vue2.0 子组件改变props值,并向父组件传值的方法
2018/03/01 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
vue实现侧边栏导航效果
2019/10/21 Javascript
JS实现分页导航效果
2020/02/19 Javascript
详解vue路由
2020/08/05 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
vue.js+element 默认提示中英文操作
2020/11/11 Javascript
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
详解Python中的元组与逻辑运算符
2015/10/13 Python
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
从0开始的Python学习016异常
2019/04/08 Python
python pandas时序处理相关功能详解
2019/07/03 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
会计专业推荐信
2013/10/29 职场文书
品质管理部岗位职责范文
2014/03/01 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
工商干部先进事迹
2014/05/14 职场文书
2016公司新年问候语
2015/11/11 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python