基于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提取字典key列表的方法
Jul 11 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
python中format()函数的简单使用教程
Mar 14 Python
解决pycharm界面不能显示中文的问题
May 23 Python
Python(TensorFlow框架)实现手写数字识别系统的方法
May 29 Python
Python实现的个人所得税计算器示例
Jun 01 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
如何获取Python简单for循环索引
Nov 21 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
Pandas读取csv时如何设置列名
Jun 02 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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 url路由入门实例
2014/04/23 PHP
php获取文件后缀的9种方法
2016/03/22 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
2016/09/13 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
JS Timing
2007/04/21 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
jquery获取节点名称
2015/04/26 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
基于express中路由规则及获取请求参数的方法
2018/03/12 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
使用vuex缓存数据并优化自己的vuex-cache
2018/05/30 Javascript
微信小程序内拖动图片实现移动、放大、旋转的方法
2018/09/04 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
python实现汉诺塔方法汇总
2016/07/25 Python
django自带的server 让外网主机访问方法
2018/05/14 Python
Python 爬虫之Beautiful Soup模块使用指南
2018/07/05 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Python SQLAlchemy入门教程(基本用法)
2019/11/11 Python
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
澳大利亚领先的女帽及配饰公司:Morgan&Taylor
2019/12/01 全球购物
主要的Ajax框架都有什么
2013/11/14 面试题
数学系毕业生的自我评价
2014/01/10 职场文书
评析教师个人的自我评价
2014/02/19 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
暑期培训班招生方案
2014/08/26 职场文书
司法工作人员群众路线对照检查材料思想汇报
2014/09/30 职场文书
工作经历证明书范文
2014/11/02 职场文书
装饰技术负责人岗位职责
2015/04/13 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
Java由浅入深通关抽象类与接口(下篇)
2022/04/26 Java/Android
python使用shell脚本创建kafka连接器
2022/04/29 Python