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的另外几种语言实现
Jan 29 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
python中使用序列的方法
Aug 03 Python
python操作oracle的完整教程分享
Jan 30 Python
Python 实现在文件中的每一行添加一个逗号
Apr 29 Python
python批量赋值操作实例
Oct 22 Python
对python使用telnet实现弱密码登录的方法详解
Jan 26 Python
pyinstaller 3.6版本通过pip安装失败的解决办法(推荐)
Jan 18 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
在pycharm中关掉ipython console/PyDev操作
Jun 09 Python
keras 实现轻量级网络ShuffleNet教程
Jun 19 Python
Python字典的基础操作
Nov 01 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实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
jQuery实现的一个自定义Placeholder属性插件
2014/08/11 Javascript
jQuery中replaceWith()方法用法实例
2014/12/25 Javascript
jQuery实现表格行上移下移和置顶的方法
2015/05/22 Javascript
jquery选择器简述
2015/08/31 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
BootStrap的alert提示框的关闭后再显示怎么解决
2016/05/17 Javascript
js获取浏览器和屏幕的各种宽度高度
2017/02/22 Javascript
Vue表单验证插件的制作过程
2017/04/01 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
页面缩放兼容性处理方法(zoom,Firefox火狐浏览器)
2017/08/29 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
简单总结Python中序列与字典的相同和不同之处
2016/01/19 Python
用python实现刷点击率的示例代码
2019/02/21 Python
Django缓存系统实现过程解析
2019/08/02 Python
python实现IOU计算案例
2020/04/12 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
奥地利网上书店:Weltbild
2017/07/14 全球购物
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
保加利亚运动鞋购物网站:SneakerStudio.bg
2020/12/23 全球购物
师范生实习自我鉴定
2013/11/01 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
中专毕业生自我鉴定
2014/02/02 职场文书
社区禁毒工作方案
2014/06/02 职场文书
电子专业求职信
2014/06/19 职场文书
经典团队口号大全
2014/06/21 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
2014年宣传思想工作总结
2014/12/10 职场文书
兵马俑导游词
2015/02/02 职场文书