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 matplotlib坐标轴设置的方法
Dec 05 Python
Python并发编程协程(Coroutine)之Gevent详解
Dec 27 Python
python 读取文本文件的行数据,文件.splitlines()的方法
Jul 12 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
使用python读取.text文件特定行的数据方法
Jan 28 Python
Pandas之Fillna填充缺失数据的方法
Jun 25 Python
Python爬虫 scrapy框架爬取某招聘网存入mongodb解析
Jul 31 Python
python实现KNN分类算法
Oct 16 Python
解决tensorboard多个events文件显示紊乱的问题
Feb 15 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
Jun 18 Python
Python3.9.1中使用split()的处理方法(推荐)
Feb 07 Python
Python实现8种常用抽样方法
Jun 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中include()与require()的区别说明
2010/03/10 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
探讨:如何使用PHP实现计算两个日期间隔的年、月、周、日数
2013/06/13 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
javascript 写类方式之二
2009/07/05 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
使用JavaScript实现弹出层效果的简单实例
2016/05/31 Javascript
Three.js学习之正交投影照相机
2016/08/01 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
AngularJS入门教程之Helloworld示例
2016/12/25 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
纯js实现倒计时功能
2017/01/06 Javascript
漂亮实用的页面loading(加载)封装代码
2017/02/03 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
详谈在flask中使用jsonify和json.dumps的区别
2018/03/26 Python
最好的商品表达自己:Cafepress
2019/09/04 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
分别介绍一下Session Bean和Entity Bean
2015/03/13 面试题
文科教师毕业的自我评价
2014/01/16 职场文书
小松树教学反思
2014/02/11 职场文书
升旗仪式主持词
2014/03/19 职场文书
先进工作者个人总结
2015/02/15 职场文书
开学典礼观后感
2015/06/15 职场文书
城南旧事读书笔记
2015/06/29 职场文书
董事会决议范本
2015/07/01 职场文书
运动会宣传语
2015/07/13 职场文书
大学生党课感想
2015/08/11 职场文书
党章学习心得体会2016
2016/01/14 职场文书
Win Server2016远程桌面如何允许多用户同时登录
2022/06/10 Servers