当前位置: 首页 > news >正文

4.8 加密模块

加密模块:

        加密"zhangsan  123" --- 加密 --- "sjakdkasjdasjd"

        - 对称加密:加密和解密用同一个密钥

        - 非对称加密:加密和解密用不同密钥(公钥 私钥)

       

        -可逆加密(可以解密)和不可逆加密(不能解密) 哈希算法: md5

        hashlib 用于计算各种哈希值的模块

        hmac 是用于生成基于密钥的消息认证码的模块。

import hashlib

'''

    encode:确定编码格式,因为计算机只能识别二进制数据,所以需要把文本字符转换为二进制形式。常见的文本编码格式有 ASCII(多处理英文)、UTF - 8(多语言)、GBK(中文) 等。

    盐值 slat (一段字符串) : 在存储用户密码时,通常会为每个用户生成一个唯一的盐值。当用户注册时,系统会生成一个随机盐值,将其与用户输入的密码拼接在一起,

                    然后对拼接后的结果进行哈希处理,最后将盐值和哈希值一同存储在数据库中。当用户登录时,系统会从数据库中取出对应的盐值,

                    再次与用户输入的密码拼接并进行哈希处理,将得到的哈希值与数据库中存储的哈希值进行比较,以此来验证密码的正确性。

'''

username = "wzw"

password = "12345"

username_md5 = hashlib.md5(username.encode("utf-8"))        #加密

slat = "%%$&&!!"    #加盐

# update:更新哈希对象内容

username_md5.update(slat.encode("utf-8"))          

# hexdigest: 二进制哈希值转换为了十六进制字符串。

print(username_md5.hexdigest())             #97f58401d4bc3470940715c843e43317      



 

import hmac

# new: 创建一个新的函数。

res1 = hmac.new(username.encode("utf-8"),slat.encode("utf-8"),"md5").hexdigest()

res2 = hmac.new("zhangsan".encode("utf-8"),slat.encode("utf-8"),"md5").hexdigest()

print(res1)         #fca70ee6559e3a39c66fd8939e31311c

print(res2)         #83dfbacc55a4f80f454623460498233d

http://www.dtcms.com/a/202626.html

相关文章:

  • 【动手学深度学习】1.1~1.2 机器学习及其关键组件
  • BioID技术:探索蛋白质相互作用的新方法
  • Vue3——Pinia
  • 数据分析预备篇---Pandas的DataFrame的更多操作
  • 【Linux】Linux 多线程
  • 【DeepSeek】为什么需要linux-header
  • 网络刷卡器的分类和网口通讯流程
  • 变频器如何通过Profibus DP主站转Modbus RTU/TCP接入到上位机
  • HTTP 协议的发展历程及技术演进
  • 文档债务拖累交付速度?5大优化策略文档自动化
  • 【深度学习:理论篇】--一文理解Transformer
  • Kotlin 协程 (二)
  • HomeAssistant开源的智能家居docker快速部署实践笔记(CentOS7)
  • 基于ROS2/Gazebo的室内送餐机器人系统开发实战教程
  • 生产消费者模型 读写者模型
  • 监控易一体化运维:采集集群管理,构建稳健运维基石
  • 【SPIN】高级时序规范(SPIN学习系列--6)
  • 什么是物联网 (IoT):2024 年物联网概述
  • Fiddler 指定链接断点
  • Python Selenium 使用指南
  • 公网ip能绑定什么?
  • 30天自制操作系统day5(vram和显存)(GDT和IDT)(c语言结构体)(汇编-c)(ai辅助整理)
  • 基于大模型预测的闭合性髌骨骨折诊疗全流程研究报告
  • Tractor S--二维转一维,然后最小生成树
  • 如何看待镍钯金PCB在当代工业制造中的地位和应用?
  • AI大模型应对挑战,使用winform实现小球在旋转五边形内的舞蹈
  • 深入理解 Python 中的几种方法:实例方法、类方法、静态方法与特殊方法
  • 强化学习_置信域算法RL
  • 波峰波谷策略
  • BACnet协议详解:架构、应用、挑战与未来发展