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编程使用NLTK进行自然语言处理详解
Nov 16 Python
python清理子进程机制剖析
Nov 23 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
对python append 与浅拷贝的实例讲解
May 04 Python
python smtplib发送带附件邮件小程序
May 22 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python matplotlib库绘制条形图练习题
Aug 10 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
详解python内置模块urllib
Sep 09 Python
使用Python操作MySQL的小技巧
Sep 10 Python
python音频处理的示例详解
Dec 23 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
vs中通过剪切板循环来循环粘贴不同内容
2011/04/30 PHP
php 广告调用类代码(支持Flash调用)
2011/08/11 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
2016/01/18 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
小程序实现分类页
2019/07/12 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
浅谈JavaScript节流和防抖函数
2020/08/25 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
gearman的安装启动及python API使用实例
2014/07/08 Python
Python获取文件ssdeep值的方法
2014/10/05 Python
简单谈谈python中的语句和语法
2017/08/10 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
python global关键字的用法详解
2019/09/05 Python
Python的几种主动结束程序方式
2019/11/22 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
2020/03/01 Python
python实现提取COCO,VOC数据集中特定的类
2020/03/10 Python
python xlsxwriter模块的使用
2020/12/24 Python
如何利用python 读取配置文件
2021/01/06 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
建龙钢铁面试总结
2014/04/15 面试题
中学生社会实践教育活动总结
2015/05/06 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
Java集成swagger文档组件
2021/06/28 Java/Android