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中的sort方法使用详解
Jul 25 Python
Python中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
Python urls.py的三种配置写法实例详解
Apr 28 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
在CentOS7下安装Python3教程解析
Jul 09 Python
Python下划线5种含义代码实例解析
Jul 10 Python
python如何将图片转换素描画
Sep 08 Python
python利用google翻译方法实例(翻译字幕文件)
Sep 21 Python
python实现在列表中查找某个元素的下标示例
Nov 16 Python
简单谈谈Python面向对象的相关知识
Jun 28 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
ThinkPHP框架实现FTP图片上传功能示例
2019/04/08 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
jQuery EasyUI API 中文文档 - NumberBox数字框
2011/10/13 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
2016/11/25 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
浅谈vue-lazyload实现的详细过程
2017/08/22 Javascript
Vue常用的几个指令附完整案例
2018/11/06 Javascript
[32:30]夜魇凡尔赛茶话会 第一期01:谁是卧底
2021/03/11 DOTA
Python实现基于HTTP文件传输实例
2014/11/08 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python引用模块和查找模块路径
2016/03/17 Python
Python 25行代码实现的RSA算法详解
2018/04/10 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
python微信好友数据分析详解
2018/11/19 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
Python如何访问字符串中的值
2020/02/09 Python
2020最新pycharm汉化安装(python工程狮亲测有效)
2020/04/26 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
5分钟弄清楚html5的drag and drop(小结)
2019/04/10 HTML / CSS
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
Rosetta Stone官方网站:语言学习
2019/01/05 全球购物
感恩母亲节活动方案
2014/03/04 职场文书
党务公开方案
2014/05/06 职场文书
个人学习总结范文
2015/02/15 职场文书
英文版辞职信
2015/02/28 职场文书
鸡毛信观后感
2015/06/11 职场文书
2019思想汇报范文
2019/05/21 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
HTML+JS实现在线朗读器
2022/02/15 Javascript