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 开发者节省时间的10个方法
Oct 02 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
python的dataframe和matrix的互换方法
Apr 11 Python
django用户登录和注销的实现方法
Jul 16 Python
Python实现简单的用户交互方法详解
Sep 25 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
python requests证书问题解决
Sep 05 Python
10个Python面试常问的问题(小结)
Nov 20 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
Feb 23 Python
如何利用python之wxpy模块玩转微信
Aug 17 Python
利用python+request通过接口实现人员通行记录上传功能
Jan 13 Python
基于Python实现股票收益率分析
Apr 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
php中的静态变量的基本用法
2014/03/20 PHP
thinkphp3.2.2实现生成多张缩略图的方法
2014/12/19 PHP
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
php封装好的人民币数值转中文大写类
2015/12/20 PHP
php中如何执行linux命令详解
2018/11/06 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
JavaScript 获取用户客户端操作系统版本
2009/08/25 Javascript
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
js函数调用的方式
2014/05/06 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
js实现iPhone界面风格的单选框和复选框按钮实例
2015/08/18 Javascript
JS封装的自动创建表格的实现代码
2016/06/15 Javascript
关于ES6的六个小特性(二)
2017/02/20 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
jQuery实现的表格前端排序功能示例
2017/09/18 jQuery
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Python修改MP3文件的方法
2015/06/15 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
在keras中对单一输入图像进行预测并返回预测结果操作
2020/07/09 Python
如何找出EMP表里面SALARY第N高的employee
2013/12/05 面试题
企业为何需要商业计划书
2013/12/26 职场文书
教师对学生的评语
2014/04/28 职场文书
计划生育宣传标语
2014/06/21 职场文书
《穷人》教学反思
2016/02/19 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
Python Django项目和应用的创建详解
2021/11/27 Python
Python实现双向链表
2022/05/25 Python