hashlib模块

简介: hashlib模块

hashlib是个专门提供hash算法的库,其支持openssl 库提供的所有算法,包括md5, sha1, sha224, sha256, sha384, sha512,使用非常简单、方便。md5经常用来做用户密码的存储。而sha1则经常用作数字签名


他们的使用模式都是一样的,所以我这里只介绍md5的加解密

  • 使用hashlib.md5()可以创建一个md5对象 ( 也可以使用hashlib.new(‘md5’[, data]) )
import hashlib
text = "halib真好用!"
m = hashlib.new("md5", text.encode('gbk'))
print(m.hexdigest()) # c6380f31122e5b9ccf60421e3c79b589

使用MD5对象.uptate(data)可以添加加密的文本(该文本需要经过编码,企且编码不同可能会造成得到hash值不同),注意多次使用uptate()表示将data叠加,而不是覆盖,比如:m.uptate(a)和m.uptate(b) 等价于 m.update(a+b)

import hashlib
text1 = "hashlib"
text2 = "真好用!"
m = hashlib.md5()
m.update(text1.encode('utf-8'))
m.update(text2.encode('utf-8'))
print(m.hexdigest()) # c6380f31122e5b9ccf60421e3c79b589
  • 使用md5对象.hexdigest()得到hash值
import hashlib
text = "hashlib真好用!"
m = hashlib.md5()
m.update(text.encode('utf-8'))
print(m.hexdigest()) # c6380f31122e5b9ccf60421e3c79b589

加盐:额外给原始数据添加一点自定义的数据,使得生成的消息摘要不同于普通方式计算的摘要。

比如我下面给密码字符串“password”加上字符串“salt”,这里的“salt”字符串就是所谓的盐,其摘要值必然不等于正常摘要“password”字符串的值。当然这个“salt”具体是什么,完全可以自定义,而且不能告诉他人!千万不要以为加盐就是加个“salt”字符串。

import hashlib.md5
md5 = hashlib.md5()
s = "我是明文" + "我是盐"
md5.update(s.encode('utf-8'))
print(md5.hexdigest()) # 'b305cadbb3bce54f3aa59c64fec00dea'

sha1的使用 (用法都一样)

import hashlib
text2 = "我在使用sha1加密"
print(hashlib.new('sha1', text2.encode("utf-8")).hexdigest()) # fe797d7f4aaf1640781f8ba85e216d11e1db09bd
k = hashlib.sha1()
k.update(text2.encode("utf-8"))
print(k.hexdigest()) # fe797d7f4aaf1640781f8ba85e216d11e1db09bd


目录
相关文章
|
Linux 数据安全/隐私保护
【Linux】第一站:环境安装与用户创建
【Linux】第一站:环境安装与用户创建
124 0
|
存储 弹性计算 大数据
阿里云服务器怎么样?全访问解析云服务器ECS功能、租用、优缺点及使用说明
阿里云ECS是弹性计算服务,提供安全可靠的云服务器,包括多种实例规格如经济型、通用型、计算型等,适合不同场景。ECS支持VPC专有网络、快照与镜像、多种付费模式。用户可根据业务需求选择实例、存储类型和网络配置。阿里云服务器适用于Web应用、游戏、大数据和深度学习等场景,提供免费试用和不同优惠套餐。众多知名企业如新浪微博等信赖阿里云服务。更多信息可访问阿里云官方网站。
543 5
|
存储 弹性计算 监控
【阿里云弹性计算】阿里云 ECS 性能优化秘籍:提升应用响应速度与资源利用率
【5月更文挑战第22天】阿里云ECS优化涉及实例规格选择、OS与应用配置、网络配置、存储优化及数据库连接池管理。合理挑选CPU和内存,关闭无关服务,利用EIP和负载均衡优化网络,选择合适存储类型,并通过监控工具进行性能分析和压力测试,以提升响应速度,优化资源利用率,降低成本,增强企业竞争力。示例展示了Java数据库连接池配置优化。通过持续探索和实践,可最大化发挥ECS潜力。
474 7
|
存储 数据挖掘 BI
带你读《Apache Doris 案例集》——04 星云零售信贷 基于 Apache Doris 的 OLAP 演进之路(2)
带你读《Apache Doris 案例集》——04 星云零售信贷 基于 Apache Doris 的 OLAP 演进之路(2)
249 0
|
SQL 关系型数据库 MySQL
|
应用服务中间件 PHP nginx
Nginx如何处理请求
Nginx如何处理请求
212 1
|
数据安全/隐私保护
【工作中问题解决实践 三】深入理解RBAC权限模型
【工作中问题解决实践 三】深入理解RBAC权限模型
454 0
|
前端开发 JavaScript
|
存储 算法
数据结构(严蔚敏版)第三章——栈和队列(二)【栈的表示和操作的实现】
3.3、栈的表示和操作的实现 3.3.1、栈的类型定义 3.3.2、顺序栈的表示和实现 1、顺序栈的初始化 2、判断顺序栈是否为空 3、求顺序栈长度 4、清空顺序栈 5、销毁顺序栈 6、顺序栈的入栈 7、顺序栈的出栈 8、取栈顶元素 3.3.3、链栈的表示和实现 1、链栈的初始化 2、判断链栈是否为空 3、链栈的入栈 4、链栈的出栈 5、取栈顶元素
487 0
|
机器学习/深度学习 传感器 算法
匹配滤波增益matlab仿真附报告
匹配滤波增益matlab仿真附报告