基于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实现批量修改文件名实例
Jul 08 Python
Python实现信用卡系统(支持购物、转账、存取钱)
Jun 24 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
Python在for循环中更改list值的方法【推荐】
Aug 17 Python
Python中Numpy mat的使用详解
May 24 Python
Python搭建Spark分布式集群环境
Jul 05 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 Python
Pytorch 之修改Tensor部分值方式
Dec 27 Python
python实现微信打飞机游戏
Mar 24 Python
什么是python的列表推导式
May 26 Python
python中xlrd模块的使用详解
Feb 01 Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
Feb 16 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
PHP aes (ecb)解密后乱码问题
2015/06/22 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
Swoole4.4协程抢占式调度器详解
2019/05/23 PHP
JS类的封装及实现代码
2009/12/02 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
jquery键盘事件介绍
2011/01/31 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
js获取表格的行数和列数的方法
2015/10/23 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
Python如何为图片添加水印
2016/11/25 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
使用Python+wxpy 找出微信里把你删除的好友实例
2019/02/21 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
jenkins+python自动化测试持续集成教程
2020/05/12 Python
python 瀑布线指标编写实例
2020/06/03 Python
一文弄懂Pytorch的DataLoader, DataSet, Sampler之间的关系
2020/07/03 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
生产文员岗位职责
2014/04/05 职场文书
研讨会通知
2015/04/27 职场文书
idea 在springboot中使用lombok插件的方法
2021/08/02 Java/Android
Python MNIST手写体识别详解与试练
2021/11/07 Python