基于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连接DB2数据库
Aug 27 Python
python2.7实现FTP文件下载功能
Apr 15 Python
Python 批量合并多个txt文件的实例讲解
May 08 Python
Pyqt5如何让QMessageBox按钮显示中文示例代码
Apr 11 Python
通过实例了解Python str()和repr()的区别
Jan 17 Python
基于梯度爆炸的解决方法:clip gradient
Feb 04 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
深入了解Python enumerate和zip
Jul 16 Python
python 绘制场景热力图的示例
Sep 23 Python
2021年pycharm的最新安装教程及基本使用图文详解
Apr 03 Python
利用python做数据拟合详情
Nov 17 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学习资料汇总与网址
2007/03/16 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
PHP实现将浏览历史页面网址保存到cookie的方法
2015/01/26 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
php强大的时间转换函数strtotime
2016/02/18 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
PHP时间日期增减操作示例【date strtotime实现加一天、加一月等操作】
2018/12/21 PHP
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
Javascript+CSS实现影像卷帘效果思路及代码
2014/10/20 Javascript
对于jQuery性能的一些优化建议
2015/08/13 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
Bootstrap每天必学之模态框(Modal)插件
2016/04/26 Javascript
jQuery UI Bootstrap是什么?
2016/06/17 Javascript
VUE 全局变量的几种实现方式
2018/08/22 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python 连连看连接算法
2008/11/22 Python
python实现读取并显示图片的两种方法
2017/01/13 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
Python读取word文本操作详解
2018/01/22 Python
基于python实现名片管理系统
2018/11/30 Python
Django Haystack 全文检索与关键词高亮的实现
2020/02/17 Python
pyspark 随机森林的实现
2020/04/24 Python
使用Django搭建网站实现商品分页功能
2020/05/22 Python
为什么相对PHP黑python的更少
2020/06/21 Python
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
公司年会演讲稿范文
2014/01/11 职场文书
家长学校实施方案
2014/03/15 职场文书
竞选演讲稿范文大全
2014/05/12 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
处级干部考察材料
2014/12/24 职场文书