Python hashlib模块加密过程解析


Posted in Python onNovember 05, 2019

这篇文章主要介绍了Python hashlib模块加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

hashlib模块

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

import hashlib
 
m = hashlib.md5()
m.update(b"Hello")
m.update(b"It's me")
print(m.digest())
m.update(b"It's been a long time since last time we ...")
 
print(m.digest()) #2进制格式hash
print(len(m.hexdigest())) #16进制格式hash
'''
def digest(self, *args, **kwargs): # real signature unknown
  """ Return the digest value as a string of binary data. """
  pass
 
def hexdigest(self, *args, **kwargs): # real signature unknown
  """ Return the digest value as a string of hexadecimal digits. """
  pass
 
'''
import hashlib
 
# ######## md5 ########
 
hash = hashlib.md5()
hash.update('admin')
print(hash.hexdigest())
 
# ######## sha1 ########
 
hash = hashlib.sha1()
hash.update('admin')
print(hash.hexdigest())
 
# ######## sha256 ########
 
hash = hashlib.sha256()
hash.update('admin')
print(hash.hexdigest())
 
 
# ######## sha384 ########
 
hash = hashlib.sha384()
hash.update('admin')
print(hash.hexdigest())
 
# ######## sha512 ########
 
hash = hashlib.sha512()
hash.update('admin')
print(hash.hexdigest())

还不够吊?python 还有一个 hmac 模块,它内部对我们创建 key 和 内容 再进行处理然后再加密

散列消息鉴别码,简称HMAC,是一种基于消息鉴别码MAC(Message Authentication Code)的鉴别机制。使用HMAC时,消息通讯的双方,通过验证消息中加入的鉴别密钥K来鉴别消息的真伪;

一般用于网络通信中消息加密,前提是双方先要约定好key,就像接头暗号一样,然后消息发送把用key把消息加密,接收方用key + 消息明文再加密,拿加密后的值 跟 发送者的相对比是否相等,这样就能验证消息的真实性,及发送者的合法性了。

import hmac
h = hmac.new(b'天王盖地虎', b'宝塔镇河妖')
print h.hexdigest()

更多关于md5,sha1,sha256等介绍的文章看这里https://www.tbs-certificates.co.uk/FAQ/en/sha256.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习之asyncore模块用法实例教程
Sep 29 Python
python安装与使用redis的方法
Apr 19 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
python简单线程和协程学习心得(分享)
Jun 14 Python
python+selenium实现自动抢票功能实例代码
Nov 23 Python
Python操作rabbitMQ的示例代码
Mar 19 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
python实现通过flask和前端进行数据收发
Aug 22 Python
jupyter notebook 调用环境中的Keras或者pytorch教程
Apr 14 Python
python 引用传递和值传递详解(实参,形参)
Jun 05 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
python数据可视化使用pyfinance分析证券收益示例详解
Nov 20 Python
python set集合使用方法解析
Nov 05 #Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 #Python
python中删除某个元素的方法解析
Nov 05 #Python
Django 框架模型操作入门教程
Nov 05 #Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 #Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 #Python
Python imread、newaxis用法详解
Nov 04 #Python
You might like
php读取csv实现csv文件下载功能
2013/12/18 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
smarty缓存用法分析
2014/12/16 PHP
PHP使用strtotime计算两个给定日期之间天数的方法
2015/03/18 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
PHP中Cookie的使用详解(简单易懂)
2017/04/28 PHP
javascript 命名空间以提高代码重用性
2008/11/13 Javascript
动态调用CSS文件的JS代码
2010/07/29 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
关于JSON.parse(),JSON.stringify(),jQuery.parseJSON()的用法
2016/06/30 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
详解小程序不同页面之间通讯的解决方案
2018/11/23 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
python用字典统计单词或汉字词个数示例
2014/04/22 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
详解关于Django中ORM数据库迁移的配置
2018/10/08 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
python执行CMD指令,并获取返回的方法
2018/12/19 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python图形用户接口实例详解
2019/12/16 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
FOREO斐珞尔官方旗舰店:LUNA露娜洁面仪
2018/03/11 全球购物
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
董事长岗位职责
2013/11/30 职场文书
你懂得怎么写自荐信吗?
2013/12/27 职场文书
餐饮业经理竞聘演讲稿
2014/01/14 职场文书
工程售后服务方案
2014/06/08 职场文书
污水处理保证书
2015/05/09 职场文书
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js