Python hashlib模块加密过程解析


Posted in Python onNovember 05, 2019

这篇文章主要介绍了Python hashlib模块加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

hashlib模块

用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法

import hashlib
 
m = hashlib.md5()
m.update(b"Hello")
m.update(b"It's me")
print(m.digest())
m.update(b"It's been a long time since last time we ...")
 
print(m.digest()) #2进制格式hash
print(len(m.hexdigest())) #16进制格式hash
'''
def digest(self, *args, **kwargs): # real signature unknown
  """ Return the digest value as a string of binary data. """
  pass
 
def hexdigest(self, *args, **kwargs): # real signature unknown
  """ Return the digest value as a string of hexadecimal digits. """
  pass
 
'''
import hashlib
 
# ######## md5 ########
 
hash = hashlib.md5()
hash.update('admin')
print(hash.hexdigest())
 
# ######## 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(b'天王盖地虎', b'宝塔镇河妖')
print h.hexdigest()

更多关于md5,sha1,sha256等介绍的文章看这里https://www.tbs-certificates.co.uk/FAQ/en/sha256.html

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
在Python中使用mechanize模块模拟浏览器功能
May 05 Python
Python中字符串的格式化方法小结
May 03 Python
win10系统中安装scrapy-1.1
Jul 03 Python
关于Django外键赋值问题详解
Aug 13 Python
Python爬取十篇新闻统计TF-IDF
Jan 03 Python
使用Python读取安卓手机的屏幕分辨率方法
Mar 31 Python
win10系统下Anaconda3安装配置方法图文教程
Sep 19 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
May 22 Python
anaconda python3.8安装后降级
Jun 11 Python
python set集合使用方法解析
Nov 05 #Python
基于python2.7实现图形密码生成器的实例代码
Nov 05 #Python
python中删除某个元素的方法解析
Nov 05 #Python
Django 框架模型操作入门教程
Nov 05 #Python
Python3.7 读取 mp3 音频文件生成波形图效果
Nov 05 #Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 #Python
Python imread、newaxis用法详解
Nov 04 #Python
You might like
PHP 调试工具Debug Tools
2011/04/30 PHP
PHP运行环境配置与开发环境的配置(图文教程)
2013/06/04 PHP
Smarty中常用变量操作符汇总
2014/10/27 PHP
PHP按指定键值对二维数组进行排序的方法
2015/12/22 PHP
thinkphp中的多表关联查询的实例详解
2017/10/12 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
JavaScript DOM进阶方法
2015/04/13 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
JS动态创建元素的两种方法
2016/04/20 Javascript
微信小程序 for 循环详解
2016/10/09 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
JavaScript实现抖音罗盘时钟
2019/10/11 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python面向对象进阶学习
2019/05/21 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
HTML5中使用json对象的实例代码
2018/09/10 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
欢送退休感言
2014/02/08 职场文书
合伙协议书
2014/04/23 职场文书
赔偿协议书范本
2014/09/12 职场文书
工程项目合作意向书
2015/05/08 职场文书
萤火虫之墓观后感
2015/06/05 职场文书
小学运动会前导词
2015/07/20 职场文书
go语言基础 seek光标位置os包的使用
2021/05/09 Golang
DIV CSS实现网页背景半透明效果
2021/12/06 HTML / CSS
Python读写yaml文件
2022/03/20 Python
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js