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 16 Python
python实现每次处理一个字符的三种方法
Oct 09 Python
基于循环神经网络(RNN)的古诗生成器
Mar 26 Python
解决python删除文件的权限错误问题
Apr 24 Python
python通过微信发送邮件实现电脑关机
Jun 20 Python
Python函数和模块的使用总结
May 20 Python
原来我一直安装 Python 库的姿势都不对呀
Nov 11 Python
python 画函数曲线示例
Dec 04 Python
Python爬取365好书中小说代码实例
Feb 28 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
python实现飞船大战
Apr 24 Python
Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)
Dec 07 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 mysql数据库操作类
2008/06/04 PHP
总结PHP中数值计算的注意事项
2016/08/14 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
Javascript函数的参数
2015/07/16 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
js字符串处理之绝妙的代码
2019/04/05 Javascript
Vue动态生成表格的行和列
2019/07/18 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
JavaScript canvas绘制折线图
2020/02/18 Javascript
vue.js中使用微信扫一扫解决invalid signature问题(完美解决)
2020/04/11 Javascript
[50:48]LGD vs CHAOS 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[02:05:03]完美世界DOTA2联赛循环赛 LBZS VS Matador BO2 10.28
2020/10/28 DOTA
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
2018/05/04 Python
想学python 这5本书籍你必看!
2018/12/11 Python
Jacobi迭代算法的Python实现详解
2019/06/29 Python
python学生信息管理系统实现代码
2019/12/17 Python
简述python&pytorch 随机种子的实现
2020/10/07 Python
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
园林资料员岗位职责
2013/12/30 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
库房管理员岗位职责
2015/02/12 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
培养联系人考察意见
2015/06/01 职场文书
让生命充满爱观后感
2015/06/08 职场文书
董存瑞观后感
2015/06/11 职场文书
2016党性教育学习心得体会
2016/01/21 职场文书
Python中的 No Module named ***问题及解决
2022/07/23 Python