加密与解密
加密与解密
加密方式分类
加密方式主要分为两种
- 一种是对称加密
- 一种是非对称加密
对称加密
对称和非对称两种方式主要说的是加密和解密两个过程。
如果对数据用一个钥匙进行了加密,那么, 你想成功读取到这个加密了的数据的话,就必须对这个加密数据进行解密才行。
在现实生活中,我们锁了门,那就必须用相对应的钥匙才能打开这个门。在数据加密中也是如此,我们对数据进行了加密,也是必须用相对应的钥匙才能解密数据。
因此问题就来了,这种时候我们就会思考怎么对数据进行加密,怎么对数据进行解密。
一开始的方式一般都是比较简单的,就是,我们用一把钥匙对数据进行加密,如果要解密这个数据,就再次用这把钥匙对加密的数据进行解密即可。
像这种加密和解密都是用同一把钥匙的方式就叫做对称加密
采用这种加密方式就诞生了诸多的加密算法,较为常用和知名的就是DES、AES算法

非对称加密
经过上面对对称加密方式的解释,相信聪明的你一定明白了非对称加密方式是怎么回事了吧。简单的说,就是非对称加密的加密和解密的两把钥匙不是同一把钥匙。
但是这里可能大家就会出现一个疑问,因为根据显示生活中的案例来说,既然钥匙都不同了,怎么能解锁呢。
这种时候就不能太较真计算机世界和现实世界的这些小区别了。
这也正是非对称加密算法的特点,就是通过非对称加密算法生成的加密和解密的两把钥匙不同,并且通过加密钥匙加密的数据只能通过解密钥匙解密(相反的,用解密钥匙加密的数据,也只能用解密钥匙进行解密)
一般,我们把通过非对称算法生成的加密钥匙称之为公钥,把通过非对称算法生成的解密钥匙称之为私钥。
而如今常见的非对称算法就是我们现在熟知的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(命…...
低代码行业未来如何?大家都真的看好低代码开发吗?
低代码行业未来如何?大家都真的看好低代码开发吗? 是否一定需要开发人员?低代码和无代码平台会取代传统编程吗?低代码/无代码真的是未来吗? 无疑是需要且重要的。今天就来解答为什么低/零代码工具越来越受欢迎…...
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🙉📢生活依旧是美好而又温柔的,你也是✨ …...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
连锁超市冷库节能解决方案:如何实现超市降本增效
在连锁超市冷库运营中,高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术,实现年省电费15%-60%,且不改动原有装备、安装快捷、…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
网站指纹识别
网站指纹识别 网站的最基本组成:服务器(操作系统)、中间件(web容器)、脚本语言、数据厍 为什么要了解这些?举个例子:发现了一个文件读取漏洞,我们需要读/etc/passwd,如…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态
前言 在人工智能技术飞速发展的今天,深度学习与大模型技术已成为推动行业变革的核心驱动力,而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心,系统性地呈现了两部深度技术著作的精华:…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...
