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 相关文章推荐
python3生成随机数实例
Oct 20 Python
详解Python中的array数组模块相关使用
Jul 05 Python
Sanic框架请求与响应实例分析
Jul 16 Python
详解Python字典的操作
Mar 04 Python
python列表推导式操作解析
Nov 26 Python
PyTorch中permute的用法详解
Dec 30 Python
如何给Python代码进行加密
Jan 10 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
Python字符串中删除特定字符的方法
Jan 15 Python
浅谈TensorFlow中读取图像数据的三种方式
Jun 30 Python
Python Unittest原理及基本使用方法
Nov 06 Python
python中 Flask Web 表单的使用方法
May 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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
在thinkphp5.0路径中实现去除index.php的方式
2019/10/16 PHP
jQuery Ajax文件上传(php)
2009/06/16 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
基于javascript代码实现通过点击图片显示原图片
2015/11/29 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
canvas学习之API整理笔记(二)
2016/12/29 Javascript
多个上传文件用js验证文件的格式和大小的方法(推荐)
2017/03/09 Javascript
解决vue中post方式提交数据后台无法接收的问题
2018/08/11 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
Node.js Stream ondata触发时机与顺序的探索
2019/03/08 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
[02:51]DOTA2战队出征照拍摄花絮 TI3明星化身时尚男模
2013/07/22 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
理解Python中函数的参数
2015/04/27 Python
python实现输入数字的连续加减方法
2018/06/22 Python
python实现推箱子游戏
2020/03/25 Python
pyqt5 实现多窗口跳转的方法
2019/06/19 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python机器学习包mlxtend的安装和配置详解
2019/08/21 Python
CSS3实现任意图片lowpoly动画效果实例
2017/05/11 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
Oracle的内存结构(Memory structures)
2015/06/10 面试题
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年学习委员工作总结
2014/11/14 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
观看建国大业观后感
2015/06/01 职场文书
MySQL安装后默认自带数据库的作用详解
2021/04/27 MySQL