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魔法方法-自定义序列详解
Jul 21 Python
Python实现树的先序、中序、后序排序算法示例
Jun 23 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
python微元法计算函数曲线长度的方法
Nov 08 Python
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
pycharm 设置项目的根目录教程
Feb 12 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
python录音并调用百度语音识别接口的示例
Dec 01 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
Python爬虫制作翻译程序的示例代码
Feb 22 Python
2021年最新用于图像处理的Python库总结
Jun 15 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
上传文件先创建目录 再上传到目录里面去
2010/12/29 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
CodeIgniter安全相关设置汇总
2014/07/03 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
PHP设计模式之PHP迭代器模式讲解
2019/03/22 PHP
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
js 开发之autocomplete="off"在chrom中失效的解决办法
2017/09/28 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Python 含参构造函数实例详解
2017/05/25 Python
python中(str,list,tuple)基础知识汇总
2018/02/20 Python
对Python 2.7 pandas 中的read_excel详解
2018/05/04 Python
python3实现点餐系统
2019/01/24 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
CSS3中新增的对文本和字体的设置
2020/02/03 HTML / CSS
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
Canon佳能美国官方商店:购买数码相机、数码单反相机、镜头和打印机
2016/11/15 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
上班看电影检讨书
2014/02/12 职场文书
喝酒检查书范文
2014/02/23 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python