基于hashlib模块--加密(详解)


Posted in Python onJune 21, 2017

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

import hashlib
 
m = hashlib.md5()
m.update(b"hello")
print(m.hexdigest())
m.update(b"It's me")
print(m.hexdigest())
m.update(b"It's been a long time since we spoken.")
print(m.hexdigest())
 
m2 = hashlib.md5()
m2.update(b"helloIt's me")
print(m2.hexdigest())
 
# 输出
5d41402abc4b2a76b9719d911017c592
64f69d95135bc13d4827f871b37f780f
0c9a83e10aa2f9e9629be61146db9cc2
64f69d95135bc13d4827f871b37f780f
 
#第二个和第四个 md5值是相同的,所以第二个加密的是 helloIt'sme<br><code class="python comments"><br></code>

print(m.digest()) #2进制格式hash

print(len(m.hexdigest())) #16进制格式hash

# ######## 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("天王盖地虎".encode(encoding="utf-8"), "你是小松鼠".encode(encoding="utf-8"))
print(h.digest())
print(h.hexdigest())
 
#输出
b'fx\xad\xdd\x9e\xd6\xddcQN\x82c\xcd\xd9\x80-'
6678addd9ed6dd63514e8263cdd9802d

以上这篇基于hashlib模块--加密(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
Python字符串拼接六种方法介绍
Dec 18 Python
python 自动轨迹绘制的实例代码
Jul 05 Python
更新pip3与pyttsx3文字语音转换的实现方法
Aug 08 Python
Python3多线程版TCP端口扫描器
Aug 31 Python
Django学习之文件上传与下载
Oct 06 Python
pytorch之inception_v3的实现案例
Jan 06 Python
简单了解python filter、map、reduce的区别
Jan 14 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
PyTorch中的拷贝与就地操作详解
Dec 09 Python
linux系统下pip升级报错的解决方法
Jan 31 Python
详谈Python基础之内置函数和递归
Jun 21 #Python
浅谈python内置变量-reversed(seq)
Jun 21 #Python
python 简单的绘图工具turtle使用详解
Jun 21 #Python
利用python批量给云主机配置安全组的方法教程
Jun 21 #Python
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
Jun 21 #Python
python将unicode转为str的方法
Jun 21 #Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 #Python
You might like
rrmdir php中递归删除目录及目录下的文件
2011/05/15 PHP
深入理解PHP中的global
2014/08/19 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
用js判断页面刷新或关闭的方法(onbeforeunload与onunload事件)
2012/06/22 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
JS获取屏幕,浏览器窗口大小,网页高度宽度(实现代码)
2013/12/17 Javascript
location.href用法总结(最主要的)
2013/12/27 Javascript
javascript获取本机操作系统类型的方法
2015/08/13 Javascript
Bootstrap零基础入门教程(三)
2016/07/18 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
浅谈javascript alert和confirm的美化
2016/12/15 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
2017/08/15 Javascript
JS验证码实现代码
2017/09/14 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
详解vue中$nextTick和$forceUpdate的用法
2019/12/11 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
jQuery列表动态增加和删除的实现方法
2020/11/05 jQuery
python连接sql server乱码的解决方法
2013/01/28 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
Python基于csv模块实现读取与写入csv数据的方法
2018/01/18 Python
Django 实现对已存在的model进行更改
2020/03/28 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
什么是servlet
2012/05/08 面试题
销售行政专员职责
2014/01/03 职场文书
监督检查工作方案
2014/05/28 职场文书
小学生我的梦想演讲稿
2014/08/21 职场文书
2014民事授权委托书范本
2014/09/29 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
公证书格式
2015/01/23 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB
Go语言 详解net的tcp服务
2022/04/14 Golang