基于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之引用和类属性的初步理解
May 15 Python
Python随机生成一个6位的验证码代码分享
Mar 24 Python
Python基于有道实现英汉字典功能
Jul 25 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
详解Python核心对象类型字符串
Feb 11 Python
pygame游戏之旅 添加碰撞效果的方法
Nov 20 Python
使用Python实现将list中的每一项的首字母大写
Jun 11 Python
python挖矿算力测试程序详解
Jul 03 Python
Python3 Tkinkter + SQLite实现登录和注册界面
Nov 19 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
python的sys.path模块路径添加方式
Mar 09 Python
termux中matplotlib无法显示中文问题的解决方法
Jan 11 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
文件系统基本操作类
2006/11/23 PHP
实用函数10
2007/11/08 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
浅析PHP中的UNICODE 编码与解码
2013/06/29 PHP
is_uploaded_file函数引发的不能上传文件问题
2013/10/29 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
JS模拟面向对象全解(一、类型及传递)
2011/07/13 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
HTML5游戏引擎LTweenLite实现的超帅动画效果(附demo源码下载)
2016/01/26 Javascript
JavaScript中的this机制
2016/01/30 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
jQuery实现的简单拖拽功能示例
2016/09/13 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
jQuery 1.9版本以上的浏览器判断方法代码分享
2017/08/28 jQuery
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
vue打开子组件弹窗都刷新功能的实现
2020/09/21 Javascript
在Python中测试访问同一数据的竞争条件的方法
2015/04/23 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
在python3.5中使用OpenCV的实例讲解
2018/04/02 Python
Django使用消息提示简单的弹出个对话框实例
2019/11/15 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
2020/08/31 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
PHP数据运算类型都有哪些
2013/11/05 面试题
如何保障Web服务器安全
2014/05/05 面试题
南京某公司笔试题
2013/01/27 面试题
中层竞聘演讲稿
2014/01/09 职场文书
四风自我剖析材料
2014/09/30 职场文书
一次性工伤赔偿协议书范本
2014/11/25 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
计生个人工作总结
2015/02/28 职场文书
Oracle锁表解决方法的详细记录
2022/06/05 Oracle