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写asp详细讲解
Dec 16 Python
python使用scrapy解析js示例
Jan 23 Python
测试、预发布后用python检测网页是否有日常链接
Jun 03 Python
web.py获取上传文件名的正确方法
Aug 26 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
python基础梳理(一)(推荐)
Apr 06 Python
python五子棋游戏的设计与实现
Jun 18 Python
python中字典按键或键值排序的实现代码
Aug 27 Python
Python操作Sonqube API获取检测结果并打印过程解析
Nov 27 Python
详解django使用include无法跳转的解决方法
Mar 19 Python
编写python程序的90条建议
Apr 14 Python
pytorch MSELoss计算平均的实现方法
May 12 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
PHP4中实现动态代理
2006/10/09 PHP
PHP聊天室技术
2006/10/09 PHP
php简单封装了一些常用JS操作
2007/02/25 PHP
php的curl实现get和post的代码
2008/08/23 PHP
PHP中imagick函数的中文解释
2015/01/21 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
PHP7多线程搭建教程
2017/04/21 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
JavaScript中的setMilliseconds()方法使用详解
2015/06/11 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
浅析JavaScript中的变量复制、参数传递和作用域链
2016/01/13 Javascript
概述jQuery中的ajax方法
2016/12/16 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
JQuery扩展对象方法操作示例
2018/08/21 jQuery
react build 后打包发布总结
2018/08/24 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
学习jQuery中的noConflict()用法
2018/09/28 jQuery
基于小程序请求接口wx.request封装的类axios请求
2020/07/02 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Python获取当前时间的方法
2014/01/14 Python
Python入门篇之字典
2014/10/17 Python
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
使用python将请求的requests headers参数格式化方法
2019/01/02 Python
ASP.NET Core中的配置详解
2021/02/05 Python
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
LG西班牙网上商店:Tienda LG Online Es
2019/07/30 全球购物
工作表现评语
2014/01/19 职场文书
小学教师寄语大全
2014/04/03 职场文书
房屋所有权证明
2015/06/19 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
使用vue判断当前环境是安卓还是IOS
2022/04/12 Vue.js