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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python程序中使用SQLAlchemy时出现乱码的解决方案
Apr 24 Python
python处理大数字的方法
May 27 Python
Python 删除整个文本中的空格,并实现按行显示
Jul 24 Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 Python
Python和Go语言的区别总结
Feb 20 Python
Python爬虫beautifulsoup4常用的解析方法总结
Feb 25 Python
numpy中的meshgrid函数的使用
Jul 31 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
Python使用sqlite3模块内置数据库
May 07 Python
python else语句在循环中的运用详解
Jul 06 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
function.inc.php超越php
2006/12/09 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
jquery mobile实现拨打电话功能的几种方法
2013/08/05 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
JavaScript基础——使用Canvas绘图
2016/11/02 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
angularJS利用ng-repeat遍历二维数组的实例代码
2017/06/03 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
2017/07/12 Javascript
select获取下拉框的值 下拉框默认选中方法
2018/02/28 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
mpvue 项目初始化及实现授权登录的实现方法
2020/07/20 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
[08:54]DOTA2-DPC中国联赛 正赛 Aster vs LBZS 选手采访
2021/03/11 DOTA
Python深入学习之装饰器
2014/08/31 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
Python使用matplotlib绘制余弦的散点图示例
2018/03/14 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
2019/02/21 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
德国净水壶和滤芯品牌:波尔德PearlCo(家用净水器)
2020/04/29 全球购物
JAVA和C++的区别
2013/10/06 面试题
学生个人的自我评价分享
2013/11/05 职场文书
大学班级计划书
2014/04/29 职场文书
文明班级申报材料
2014/12/24 职场文书
如何在Python中创建二叉树
2021/03/30 Python
pandas取dataframe特定行列的实现方法
2021/05/24 Python
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android