基于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正则表达式match和search用法实例
Mar 26 Python
Python的装饰器模式与面向切面编程详解
Jun 21 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python基于whois模块简单识别网站域名及所有者的方法
Apr 23 Python
python验证码识别教程之利用投影法、连通域法分割图片
Jun 04 Python
Python 读取用户指令和格式化打印实现解析
Sep 02 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
PYTHON如何读取和写入EXCEL里面的数据
Oct 28 Python
python字符串的拼接方法总结
Nov 18 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
Jan 17 Python
python统计函数库scipy.stats的用法解析
Feb 25 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中的内存管理,PHP动态分配和释放内存
2013/06/28 PHP
PHP整合PayPal支付
2015/06/11 PHP
Javascript实例教程(19) 使用HoTMetal(1)
2006/12/23 Javascript
js DOM模型操作
2009/12/28 Javascript
jQuery对表单的操作代码集合
2011/04/06 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js在输入框屏蔽按键,只能键入数字的示例代码
2014/01/03 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
javascript、php关键字搜索函数的使用方法
2018/05/29 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
windows下python连接oracle数据库
2017/06/07 Python
python将unicode转为str的方法
2017/06/21 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
2017/07/06 Python
Python3计算三角形的面积代码
2017/12/18 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python使用MD5加密算法对字符串进行加密操作示例
2018/03/30 Python
Linux下远程连接Jupyter+pyspark部署教程
2019/06/21 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
浅谈Python中的模块
2020/06/10 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
推荐10个HTML5响应式框架
2016/02/25 HTML / CSS
Java提供了哪些企业应用编程接口
2015/02/13 面试题
园林设计专业毕业生求职信
2014/03/23 职场文书
2015年语文教学工作总结
2015/05/25 职场文书
公司趣味运动会开幕词
2016/03/04 职场文书
七年级作文之下雨天
2019/12/23 职场文书
详解CSS不受控制的position fixed
2021/05/25 HTML / CSS
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
JavaWeb Servlet开发注册页面实例
2022/04/11 Java/Android