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使用Srapy框架爬虫模拟登陆并抓取知乎内容
Jul 02 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
Python3.X 线程中信号量的使用方法示例
Jul 24 Python
Python如何生成树形图案
Jan 03 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
django-rest-swagger对API接口注释的方法
Aug 29 Python
python 实现保存最新的三份文件,其余的都删掉
Dec 22 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
python使用PIL剪切和拼接图片
Mar 23 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
Jul 13 Python
Python为何不支持switch语句原理详解
Oct 21 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
一个程序下载的管理程序(一)
2006/10/09 PHP
php中记录用户访问过的产品,在cookie记录产品id,id取得产品信息
2011/05/04 PHP
PHP防盗链代码实例
2014/08/27 PHP
Win7下手动安装apache2.2、php5.4笔记
2015/04/03 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
PHP中addslashes与mysql_escape_string的区别分析
2016/04/25 PHP
Thinkphp5.0自动生成模块及目录的方法详解
2017/04/17 PHP
javascript 实现简单的table排序及table操作练习
2012/12/28 Javascript
jquery实现表格奇数偶数行不同样式(有图为证及实现代码)
2013/01/23 Javascript
Javascript连接多个数组不用concat来解决
2014/03/24 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
AngularJS过滤器filter用法分析
2016/12/11 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
bootstrap table动态加载数据示例代码
2017/03/25 Javascript
JS实现的冒泡排序,快速排序,插入排序算法示例
2019/03/02 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
两个使用Python脚本操作文件的小示例分享
2015/08/27 Python
讲解Python的Scrapy爬虫框架使用代理进行采集的方法
2016/02/18 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
python 图像平移和旋转的实例
2019/01/10 Python
Python实现京东秒杀功能代码
2019/05/16 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
Django ORM filter() 的运用详解
2020/05/14 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
车间班组长岗位职责
2013/11/13 职场文书
安全生产月演讲稿
2014/05/09 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
普通党员对照检查材料
2014/09/24 职场文书
2016教师廉洁从教心得体会
2016/01/13 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
Python制作表白爱心合集
2022/01/22 Python