加密与解密
加密与解密
加密方式分类
加密方式主要分为两种
- 一种是对称加密
- 一种是非对称加密
对称加密
对称和非对称两种方式主要说的是加密和解密两个过程。
如果对数据用一个钥匙进行了加密,那么, 你想成功读取到这个加密了的数据的话,就必须对这个加密数据进行解密才行。
在现实生活中,我们锁了门,那就必须用相对应的钥匙才能打开这个门。在数据加密中也是如此,我们对数据进行了加密,也是必须用相对应的钥匙才能解密数据。
因此问题就来了,这种时候我们就会思考怎么对数据进行加密,怎么对数据进行解密。
一开始的方式一般都是比较简单的,就是,我们用一把钥匙对数据进行加密,如果要解密这个数据,就再次用这把钥匙对加密的数据进行解密即可。
像这种加密和解密都是用同一把钥匙的方式就叫做对称加密
采用这种加密方式就诞生了诸多的加密算法,较为常用和知名的就是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🙉📢生活依旧是美好而又温柔的,你也是✨ …...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
【JavaSE】多线程基础学习笔记
多线程基础 -线程相关概念 程序(Program) 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序,比如我们使用QQ,就启动了一个进程,操作系统就会为该进程分配内存…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
elementUI点击浏览table所选行数据查看文档
项目场景: table按照要求特定的数据变成按钮可以点击 解决方案: <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
