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

加密与解密

加密与解密

加密方式分类

加密方式主要分为两种

  • 一种是对称加密
  • 一种是非对称加密

对称加密

对称非对称两种方式主要说的是加密和解密两个过程。

如果对数据用一个钥匙进行了加密,那么, 你想成功读取到这个加密了的数据的话,就必须对这个加密数据进行解密才行。

在现实生活中,我们锁了门,那就必须用相对应的钥匙才能打开这个门。在数据加密中也是如此,我们对数据进行了加密,也是必须用相对应的钥匙才能解密数据。

因此问题就来了,这种时候我们就会思考怎么对数据进行加密,怎么对数据进行解密。

一开始的方式一般都是比较简单的,就是,我们用一把钥匙对数据进行加密,如果要解密这个数据,就再次用这把钥匙对加密的数据进行解密即可。

像这种加密和解密都是用同一把钥匙的方式就叫做对称加密

采用这种加密方式就诞生了诸多的加密算法,较为常用和知名的就是DESAES算法

DES加密方式

非对称加密

经过上面对对称加密方式的解释,相信聪明的你一定明白了非对称加密方式是怎么回事了吧。简单的说,就是非对称加密的加密和解密的两把钥匙不是同一把钥匙。

但是这里可能大家就会出现一个疑问,因为根据显示生活中的案例来说,既然钥匙都不同了,怎么能解锁呢。

这种时候就不能太较真计算机世界和现实世界的这些小区别了。

这也正是非对称加密算法的特点,就是通过非对称加密算法生成的加密和解密的两把钥匙不同,并且通过加密钥匙加密的数据只能通过解密钥匙解密(相反的,用解密钥匙加密的数据,也只能用解密钥匙进行解密)

一般,我们把通过非对称算法生成的加密钥匙称之为公钥,把通过非对称算法生成的解密钥匙称之为私钥

而如今常见的非对称算法就是我们现在熟知的RSA算法

思考

为何要有这两种截然不同的加密解密方式?

其实出现这两种截然不同解密解密方式最主要的原因还是因为对称加密的知名缺点

对称加密加密方式的缺点

对称加密有个灰常知名的缺点,那就是,因为加密和解密的钥匙是同一把,那么发送者想要接收者能解密数据,就必须把钥匙传输给接收者,这样一来,就可能会存在传输钥匙的过程中被中间人拦截获取的问题。一旦钥匙被劫持获取,加密数据就变得跟没加密的数据一样。

因此,为了解决钥匙传输问题就衍生出了非对称方式

密钥配送问题

非对称加密方式的优点
非对称加密方式的特点

通过非对称加密算法生成的加密和解密的两把钥匙不同,并且通过加密钥匙加密的数据只能通过解密钥匙解密(相反的,用解密钥匙加密的数据,也只能用解密钥匙进行解密)

正因为这一特点,非对称加密方式就完美解决了钥匙传输问题。

在实际的应用中,数据的接收者通过RSA算法生成公钥和私钥,之后将公钥发送给数据的发送者私钥自己保留,用着最终的解密数据。

过程是这样的,发送者用公钥将数据加密,之后再将加密后的数据发送给接收者,接收者用自己手中的密钥对加密的数据进行解密即可

因此,即使在公钥传输过程中被劫持了,数据也不可能被公钥解密。这样就完美解决了钥匙传输问题。

因此这也是非对称加密方式的典型优点,就是能避免钥匙的泄露而导致数据泄露

解决密钥配送问题

混合加密方式

非对称加密方式的缺点和对称加密方式的优点

世间没有十全十美的东西和实物。对于加密解密方式也是一样的,有优点就有缺点

非对称加密方式的缺点

虽然非对称加密的优点完美解决了钥匙的传输问题,但是非对称加密算法有个不小的缺点,那就是,它对数据的加密解密时间很长

因此,如果在实际应用中,完全用非对称加密方式的话,无疑是效率极低的。大家都明白,效率低是不能容忍的。

对称加密方式的优点

虽然对称加密方式的缺点很明显,但是它的优点亦是很吸引人的,那就是,它的加密效率很高,相对非对称加密方式的话,它的加密速度快很多很多

混合式加密方式的诞生

既然这两种方式都有各自的优缺点,那么我们要做的就是取其精华去其糟粕,各取两种方式的优点,混合使用。这样就能既安全又高效的对数据进行加密解密

混合方式

加密过程

简单说明一下如何混合利用两种方式的优点进行加密

  • 1、因为非对称加密慢,因此,我们对数据的加密依然用对称加密方式,这样就能快速的加密数据
  • 2、但是对称加密存在钥匙传输问题,但是非对称方式能解决传输问题,因此,就用非对称方式的公钥对 对称加密的钥匙 进行加密
  • 3、之后再将加密后的数据和加密后的对称钥匙一并发送给接收者
  • 4、之后接收者用非对称方式的密钥对加密后的 对称钥匙 进行解密
  • 5、再用解密后的 对称钥匙 对数据进行解密
  • 6、这样就做到了, 既能快速加密数据,又能确保钥匙的安全

相关文章:

加密与解密

加密与解密 加密方式分类 加密方式主要分为两种 一种是对称加密一种是非对称加密 对称加密 对称和非对称两种方式主要说的是加密和解密两个过程。 如果对数据用一个钥匙进行了加密,那么, 你想成功读取到这个加密了的数据的话,就必须对这…...

京东金融Android瘦身探索与实践

作者:京东科技 冯建华 一、背景 随着业务不断迭代更新,App的大小也在快速增加,2019年~2022年期间一度超过了117M,期间我们也做了部分优化如图1红色部分所示,但在做优化的同时面临着新的增量代码,包体积一直…...

open3d-ml 读取SemanticKITTI Dataset

目录 1. 下载dataset 2. 读取并做可视化 3. 源码阅读 3.1 读取点云数据-bin格式 3.2 读取标注数据-.label文件 3.3 读取配置 3.4 test 3.5 train 1. 下载dataset 以SemanticKITTI为例。下载链接:http://semantic-kitti.org/dataset.html#download 把上面三…...

6.其他函数

1.时间日期类 -- current_date() 返回当前日期 -- date_add(date, n) 返回从date开始n天之后的日期 -- date_sub(date, n) 返回从date开始n天之前的日期 -- datediff(date1, date2) 返回date1-date2的日期差 -- year(date) 返回…...

2023年宜昌市中等职业学校技能大赛 “网络搭建与应用”竞赛题-1

2023年宜昌市中等职业学校技能大赛 “网络搭建与应用”竞赛题 一、竞赛内容分布 “网络搭建及应用”竞赛共分二个部分,其中: 第一部分:企业网络搭建部署项目,占总分的比例为50%; 第二部分:企业网络服…...

Linux权限划分的原则

考察的不仅是一个具体的指令,还考察对技术层面的认知。 如果对 Linux 权限有较深的认知和理解,那么完全可以通过查资料去完成具体指令的执行。更重要的是,认知清晰的程序员可以把 Linux 权限管理的知识迁移到其他的系统设计中。 权限抽象 一…...

PhotoScan拼接无人机航拍RGB照片

目录 背景 拼接步骤 1.新建并保存项目 2.添加照片 3.对齐照片 4.添加标记(Markers) 5.添加地面控制点 6.建立批处理任务 7.使用批处理文件进行批处理 8.导出DEM 9.导出DOM 背景 本文介绍使用地面控制点(GCPs)拼接​​…...

【设计模式】责任链模式的介绍及其应用

责任链的介绍 责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&a…...

一些思考关于行业,关于方向,关于人生路线

一些碎碎念 选择与视角工程与科研平台与信息敢问路在何方 选择与视角 两年前的秋招时几乎速通了出现在学校招聘会上的几乎出现的每一个offer,那也是我人生第一次收获到如此多的肯定与选择,为此我在b站上上传了一期就业解读,作为一个冷门到几…...

fbx sdk的使用介绍

我们平时需要围绕fbx写一些小工具,虽说使用ascii格式的fbx可以直接进行字符串解析,并且网上也有一些基于ascii解析的开源库,但在制作一些通用的工具时,使用fbx sdk进行编写肯定是最好的。 1.下载fbx sdk和cmake 要用cmake生成vi…...

mvvm模式

mvvm是Model-View-ViewModel的缩写,是前端的一种架构模式 M - Model,模型 对应data数据 V - View,视图 对应用户界面,DOM元素 VM - ViewModel,视图模型 对应vue实例对象,是连接model和view的桥梁 …...

Spring/SpringBoot常用注解总结

为什么要写这篇文章? 最近看到网上有一篇关于 SpringBoot 常用注解的文章被转载的比较多,我看了文章内容之后属实觉得质量有点低,并且有点会误导没有太多实际使用经验的人(这些人又占据了大多数)。所以,自…...

2023 年第八届数维杯大学生数学建模挑战赛 B 题 节能列车运行控制优化策略

在城市交通电气化进程快速推进的同时,与之相应的能耗增长和负面效应也 在迅速增加。城市轨道交通中的快速增长的能耗给城轨交通的可持续性发展带来 负担。2018 年,北京、上海、广州地铁负荷占全市总负荷的 1.5%-2.5%,成为了 城市电网的最大单体负荷[1]。…...

【Swift】 NSButton的用法和示例

NSButton是macOS开发中常用的控件,用于创建按钮。它有许多用法和需要注意的事项,下面介绍其中的一些。 1. 创建按钮:使用init(frame:)或init(title:action:)初始化按钮 let button NSButton(frame: NSRect(x: 0, y: 0, width: 100, height…...

2023什么蓝牙耳机好?经销商盘点新手必入蓝牙耳机品牌

蓝牙耳机是除手机外我们使用频率最高的数码产品,我做蓝牙耳机经销商五年来,对各个品牌都有深入了解。近期看到很多新手们咨询什么蓝牙耳机好,我给大家盘点一下新手必看的五大蓝牙耳机品牌。 1.JEET Air 2蓝牙耳机 推荐理由:专为舒…...

MySQL基础(二十)MySQL的数据目录

1. MySQL8的主要目录结构 find / -name mysql1.1 数据库文件的存放路径 show variables like datadir; # /var/lib/mysql/1.2 相关命令目录 相关命令目录:/usr/bin 和/usr/sbin。 1.3 配置文件目录 配置文件目录:/usr/share/mysql-8.0(命…...

低代码行业未来如何?大家都真的看好低代码开发吗?

低代码行业未来如何?大家都真的看好低代码开发吗? 是否一定需要开发人员?低代码和无代码平台会取代传统编程吗?低代码/无代码真的是未来吗? 无疑是需要且重要的。今天就来解答为什么低/零代码工具越来越受欢迎&#xf…...

mac m2芯片 安装 brew 和cocoapods

Homebrew的安装 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 这里可能会失败,如 git clone 时候报错 error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly before end of the underlyi…...

SingleR --细胞注释

文章目录 briefExample使用内置的 references使用其他注释好的数据集作为 reference singleR还提供了注释诊断的方法 brief Example The celldex package provides access to several reference datasets (mostly derived from bulk RNA-seq or microarray data)。 The Human…...

【结构与算法】—— 游戏概率常用算法整理 | 游戏中的常见概率设计分析

📢博客主页:肩匣与橘📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由肩匣与橘编写,首发于CSDN🙉📢生活依旧是美好而又温柔的,你也是✨ …...

<6>-MySQL表的增删查改

目录 一,create(创建表) 二,retrieve(查询表) 1,select列 2,where条件 三,update(更新表) 四,delete(删除表&#xf…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

Java 加密常用的各种算法及其选择

在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

Python Einops库:深度学习中的张量操作革命

Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...