加密与解密算法

在安全领域,利用密钥加密算法来对通信的过程进行加密是一种常见的安全手段。利用该手段能够保障数据安全通信的三个目标:

1、数据的保密性,防止用户的数据被窃取或泄露
2、保证数据的完整性,防止用户传输的数据被篡改
3、通信双方的身份确认,确保数据来源与合法的用户

而常见的密钥加密算法类型大体可以分为三类:对称加密、非对称加密、单向加密

【三种分类】
1、对称加密:密钥只有一个,解密、解密都是这个密码,加解密速度快,典型的对称加密有DES、AES、RC4等
2、非对称加密:密钥成对出现,分别为公钥和私钥,从公钥无法推知私钥,反之,从私钥也无法推知公钥,加密和解密使用不同的密钥,公钥加密需要私钥解密,反之,私钥加密需要公钥解密。非对称加密速度较慢,典型的非对称算法有:RSA,DSA,DSS.
3、Hash算法,这是一种不可逆的算法,它常用于验证数据的完整性。

1、MD5加密解密

md5加密原理
MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

import hashlibdef md5_encrypt(text):# 创建md5对象md5 = hashlib.md5()# 更新md5对象的内容md5.update(text.encode('utf-8'))# 返回十六进制的MD5哈希值return md5.hexdigest()text = "Hello, World!"
md5_hash = md5_encrypt(text)
print("MD5哈希值:", md5_hash)

2、Base64加密解密

Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。

import base64def base64_encode(text):# 将字符串转换为字节,并进行Base64编码encoded_bytes = base64.b64encode(text.encode("utf-8"))# 将字节结果转换为字符串返回return encoded_bytes.decode("utf-8")def base64_decode(encoded_text):# 将Base64编码的字符串转换为字节,并进行解码decoded_bytes = base64.b64decode(encoded_text.encode("utf-8"))# 将字节结果转换为字符串返回return decoded_bytes.decode("utf-8")text = "Hello, World!"
encoded_text = base64_encode(text)
print("Base64编码:", encoded_text)decoded_text = base64_decode(encoded_text)
print("Base64解码:", decoded_text)

这种编码方式常用于数据传输时,例如在URL、邮件等传输场景中,但它不提供加密安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/460312.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openpnp - 解决“底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题“

文章目录 openpnp - 解决"底部相机高级校正成功后, 开机归零时,吸嘴自动校验失败的问题"概述笔记问题现象1问题现象2原因分析现在底部相机和吸嘴的位置偏差记录修正底部相机位置现在再看看NT1在底部相机中的位置开机归零,看看是否能通过所有校…

DreamClear:中科院与字节联合推出!隐私安全优先的高性能图像修复技术

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦! 🥦 微信公众号&#xff…

SpringBoot驱动的毕业生招聘信息平台

1 系统概述 1.1 概述  随着社会的快速发展,计算机的影响是全面且深入的。人们的生活水平不断提高,日常生活中毕业生对招聘平台方面的要求也在不断提高,需要招聘平台的人数更是不断增加,使得毕业生信息招聘平台的开发成为必需而且…

Mac程序坞窗口预览的方法来了

当你同一程序内打开的窗口过多的时候,在Mac上想要切换就只能打开程序然后在内部进行切换,没办法直达你想要打开的窗口,多了一步的操作,那么如何才能一步到位呢 如果程序坞有应用程序的缩略图,是不是就可以一步到位了&…

【C/C++】结构体的定义

零.导言 在上一篇博客中,我讲解了qsort函数,并在其中提到了结构体数组的排序,那么结构体是什么呢? 接下来我将详细讲解结构体的定义。 一,结构体是什么? 结构体是自定义的数据类型,可以存放自定义的数据。…

JavaScript 中如何识别异步函数?

我们如何判断一个函数是否是异步函数(async function)呢? 遇到问题的思考过程是什么呢,首先需要找到二者的区别,那就打印看一下,然后在思考如何做。 由此可以看出二者的差异。 1、使用 typeof 检查函数类…

springboot学生请假管理系统-计算机毕业设计源码12712

摘 要 从20年代开始,计算机在人们的生活和工作中广泛应用,成为了人们生活、工作的得力助手。计算机深入到每个家庭和每个工作场所,网络办公和网络教学取代了传统的手工记录和管理方式。使用计算机办公可以不受时间和地点限制,通过…

频率限制:WAF保护网站免受恶意攻击的关键功能

频率限制(Rate Limiting)是一项有效的安全措施,用于控制每个 IP 地址的访问速率,以防止恶意用户利用大量请求对网站进行攻击,例如防止 CC 攻击等。频率限制不仅能保护网站资源,还能提升服务的稳定性。 下面…

ClickHouse 神助攻:纽约城市公共交通管理(MTA)数据应用挑战赛

本文字数:13198;估计阅读时间:33 分钟 作者:The PME Team 本文在公众号【ClickHouseInc】首发 我们一向对开放数据挑战充满热情,所以当发现 MTA(城市交通管理局)在其官网发起了这样的挑战时&…

什么是数据中心?

数据中心是一个专门用于容纳大量联网计算机设备的设施,这些设备共同协作,以处理、存储和传输数据。现代社会中,大部分高科技公司都依赖数据中心来提供在线服务,例如网站、应用程序和云服务等。可以说,数据中心是互联网…

【论文精读】ID-like Prompt Learning for Few-Shot Out-of-Distribution Detection

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀论文精读_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 注:下文…

【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​背包客』

🚀『背包客』点击前往体验:https://mbd.baidu.com/ma/s/d7RHMlWh 最近参加了百度文心智能体平台AI大师工坊🎉活动,在这个活动中,我利用文心平台提供的各种插件、大模型等工具,打造了一个工具类的智能体应用…

理解ADC:为什么量化噪声也会产生谐波?附带介绍 Dither(抖动)

前言 今天继续从经典的 ADI 《MT-001》说起,通常情况下量化噪声是白噪声,但如果量化噪声与输入信号之间存在相关性,就不能被当做白噪声对待。 文中举了一个有意思的例子:理想 ADC 的采样频率为 80 MSPS ,一种情况输入…

从0到1构建 UniApp + Vue3 + TypeScript 移动端跨平台开源脚手架

🚀 作者主页: 有来技术 🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot 🍃 vue-uniapp-template 🌺 仓库主页: GitCode💫 Gitee &#x1f…

Docker部署教程:打造流畅的斗地主网页小游戏

Docker部署教程:打造流畅的斗地主网页小游戏 一、项目介绍项目简介项目预览二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署斗地主网页小游戏下载镜像创建容器检查容器状态查看容器日志安全设置四、访问斗地主网页小游戏五、总结一、项目介绍 项目简介 …

计算机视觉常用数据集Cityscapes的介绍、下载、转为YOLO格式进行训练

我在寻找Cityscapes数据集的时候花了一番功夫,因为官网下载需要用公司或学校邮箱邮箱注册账号,等待审核通过后才能进行下载数据集。并且一开始我也并不了解Cityscapes的格式和内容是什么样的,现在我弄明白后写下这篇文章,用于记录…

【机器学习】Lesson3 - 逻辑回归(LR)二分类

目录 背景 一、适用数据集 1. 数据集选择 1.1 领域 1.2 数据集维度 1.3 记录行(样本数量) 2. 本文数据集介绍 3. 数据集下载 注意 二、逻辑回归的基本原理 1. 目的 2. Sigmoid 函数 3. 类别划分 4. 召回率 三、代码 1. 导入所需包&数…

kubernetes——part2-3 使用RKE构建企业生产级Kubernetes集群

使用RKE构建企业生产级Kubernetes集群 一、RKE工具介绍 RKE是一款经过CNCF认证的开源Kubernetes发行版,可以在Docker容器内运行。 它通过删除大部分主机依赖项,并为部署、升级和回滚提供一个稳定的路径,从而解决了Kubernetes最常见的安装复杂…

重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-Spring WebFlux之HttpHandler和HttpServer 1. 什么是响应式编程?2. Project Reactor 概述3. HttpHandler概述3.1 HttpHandler是什么3.2 Http…

3D Gaussian Splatting代码详解(三):模型构建,实现3D 高斯椭球体的克隆和分裂

3 模型构建 3.4 根据梯度对3D gaussian 进行增加或删减 (1) 对3D高斯分布进行密集化和修剪的操作 def densify_and_prune(self, max_grad, min_opacity, extent, max_screen_size):"""对3D高斯分布进行密集化和修剪的操作:param max_g…