Python编程:hashlib模块hmac模块-摘要算法

简介: Python编程:hashlib模块hmac模块-摘要算法

摘要算法模块,hashlib


碰撞:把无限多的数据集合映射到一个有限的集合中


要注意摘要算法不是加密算法,不能用于加密(因为无法通过摘要反推明文),只能用于防篡改,但是它的单向计算特性决定了可以在不存储明文口令的情况下验证用户口令。


对原始口令加一个复杂字符串来实现,俗称“加盐”:加salt算法


通过彩虹表根据哈希值反推原始口令


hashlib模块

import hashlib
# md5
m = hashlib.md5()
m.update(b"admin")
print(m.hexdigest())
# 21232f297a57a5a743894a0e4a801fc3
m1 = hashlib.md5()
m1.update("试试中文行不行".encode("utf-8"))
print(m1.hexdigest())
# dede62a39baa08cbe71bad709603b917
# 简单写法
s = "i love you"
ret = hashlib.md5(s.encode("utf-8")).hexdigest()
print(ret)
# 459b9511a7f650ebd327889c45cc4e9b
print(len("459b9511a7f650ebd327889c45cc4e9b")) # 32
# sha1
ret = hashlib.sha1(s.encode("utf-8")).hexdigest()
print(ret)
# bb7b1901d99e8b26bb91d2debdb7d7f24b3158cf
print(len("bb7b1901d99e8b26bb91d2debdb7d7f24b3158cf")) # 40
# sha256
s = hashlib.sha256()
s.update(b"admin")
print(s.hexdigest())
# 8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918

hmac模块

import hmac
h = hmac.new(b"123456")  # key
h.update(b"admin")  # vlaue
print(h.hexdigest())
# 20238ad293024e2ea2f505db927cd52e
# 加盐salt
message = b"hello world"
salt = b"secret"
ret = hmac.new(key=salt, msg=message, digestmod="md5").hexdigest()
print(ret)
# 78d6997b1230f38e59b6d1642dfaa3a4

Base64模块

是一种用64个字符来表示任意二进制数据的方法

import base64
ret = base64.b64encode(b"afsdfsdfsfasdf")
print(ret)
# b'YWZzZGZzZGZzZmFzZGY='
ret = base64.b64decode(b'YWZzZGY=')
print(ret)
# b'afsdf'


相关文章
|
8月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
8月前
|
SQL 关系型数据库 数据库
Python SQLAlchemy模块:从入门到实战的数据库操作指南
免费提供Python+PyCharm编程环境,结合SQLAlchemy ORM框架详解数据库开发。涵盖连接配置、模型定义、CRUD操作、事务控制及Alembic迁移工具,以电商订单系统为例,深入讲解高并发场景下的性能优化与最佳实践,助你高效构建数据驱动应用。
982 7
|
9月前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
438 26
|
8月前
|
存储 监控 算法
监控电脑屏幕的帧数据检索 Python 语言算法
针对监控电脑屏幕场景,本文提出基于哈希表的帧数据高效检索方案。利用时间戳作键,实现O(1)级查询与去重,结合链式地址法支持多条件检索,并通过Python实现插入、查询、删除操作。测试表明,相较传统列表,检索速度提升80%以上,存储减少15%,具备高实时性与可扩展性,适用于大规模屏幕监控系统。
241 5
|
8月前
|
监控 安全 程序员
Python日志模块配置:从print到logging的优雅升级指南
从 `print` 到 `logging` 是 Python 开发的必经之路。`print` 调试简单却难维护,日志混乱、无法分级、缺乏上下文;而 `logging` 支持级别控制、多输出、结构化记录,助力项目可维护性升级。本文详解痛点、优势、迁移方案与最佳实践,助你构建专业日志系统,让程序“有记忆”。
725 0
|
8月前
|
JSON 算法 API
Python中的json模块:从基础到进阶的实用指南
本文深入解析Python内置json模块的使用,涵盖序列化与反序列化核心函数、参数配置、中文处理、自定义对象转换及异常处理,并介绍性能优化与第三方库扩展,助你高效实现JSON数据交互。(238字)
694 4
|
9月前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
272 4
|
8月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
759 0
|
9月前
|
机器学习/深度学习 编解码 算法
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
【机器人路径规划】基于迪杰斯特拉算法(Dijkstra)的机器人路径规划(Python代码实现)
719 4
|
9月前
|
机器学习/深度学习 算法 机器人
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
【机器人路径规划】基于A*算法的机器人路径规划研究(Python代码实现)
1133 4

热门文章

最新文章

推荐镜像

更多