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控制台显示时钟的示例
Feb 24 Python
使用Python脚本操作MongoDB的教程
Apr 16 Python
简单谈谈Python中的json与pickle
Jul 19 Python
Python实现可获取网易页面所有文本信息的网易网络爬虫功能示例
Jan 15 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
简述Python2与Python3的不同点
Jan 21 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
Python HTMLTestRunner可视化报告实现过程解析
Apr 10 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
django下创建多个app并设置urls方法
Aug 02 Python
如何基于Python pygame实现动画跑马灯
Nov 18 Python
Python面试不修改数组找出重复的数字
May 20 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
3
2006/10/09 PHP
基于php下载文件的详解
2013/06/02 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
Laravel使用scout集成elasticsearch做全文搜索的实现方法
2018/11/30 PHP
jquery.cookie.js 操作cookie实现记住密码功能的实现代码
2011/04/27 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
一个js导致的jquery失效问题的解决方法
2013/11/27 Javascript
JS实现闪动的title消息提醒效果
2014/06/20 Javascript
PHP+jQuery+Ajax实现多图片上传效果
2015/03/14 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
微信小程序 slider的简单实例
2017/04/19 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
2017/12/08 Javascript
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
详解如何在vue-cli中使用vuex
2018/08/07 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
JS跨域请求的问题解析
2018/12/03 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
Django ModelForm操作及验证方式
2020/03/30 Python
利用CSS3实现单选框动画特效示例代码
2016/09/26 HTML / CSS
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
元宵节晚会主持人串词
2014/03/25 职场文书
大学自主招生推荐信
2014/05/10 职场文书
当幸福来敲门观后感
2015/06/01 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
Python实现抖音热搜定时爬取功能
2022/03/16 Python
Python自动化工具之实现Excel转Markdown表格
2022/04/08 Python