通俗解释非对称加密

通俗解释

对称加密

对于不了解非对称加密的同学,应该只知道“对称加密”。这个对称是指什么呢?
加密必然要解密。如果加密和解密用的是同一串字符串,也就是密码,那么这就称为对称的。新词汇而已,为了和非对称加密相区分而发明的词汇,内容都是老的。

对称加密如何使用呢?假设有以下场景:

古代各国征战,A国给B国寄一封机密信。为了不让除A、B以外的人看到,A用密码锁锁住了装信的箱子,只能用密码才能打开,强行打开则信会自动销毁。
所以A收到箱子以后,必须用预设好的密码才能解开密码锁,获取信的内容。那这个密码B怎么让A怎么知道呢?密码要用隐秘的方式寄过去,有个很大的风险是密码会被拦截而泄漏。

这就是对称加密。很传统的加密方式,也很好理解。

非对称加密

对称加密有一个特点:加密使用的密码锁永远是发送方设置的。
那么如果我们用接收方的密码锁来锁箱子,然后寄给接收方,这样不就不用怕密码泄露了吗?因为密码锁是接收方的,密码自然也是接收方管理的,发送方并不知道密码!
这就是非对称加密。加密人不知道密码,只有解密人才有密码,这就是不对称。

非对称加密是一种或唯一一种实现是:公钥私钥加密。

下面是非对称加密对应的现代化加密场景:

A通过网络或者电报给B发消息。B将公钥放到网上,说,谁给我发消息,就用我的公钥加密再发给我。这里的公钥就是B的密码锁。
A知道了B的公钥,就把要发的消息使用B的公钥加密了,加密后发给了B。中间不管谁收到了这个消息,都没办法破解。因为公钥私钥使用大素数原理,想要破解公钥加密的密文,需要计算机算几千万年,到时候就算破解出来,消息已经失去了价值。
但是B有密码,也就是私钥,可以轻松解开密码锁,获取A发送的消息。

优化

上面是理想情况,实际上,当数据量很大时,非对称加密速度相对于对称加密较慢。于是综合二者的优缺点,实际应用中,通常是对称和非对称加密结合使用。具体过程如下:

  1. 先把对称加密用到的密码,用非对称加密传输过去。保证密钥不会被泄漏。
  2. 后续的数据内容传输,采用对称加密算法加密和解密。可以减少加密解密的计算量,加快通信速度。

还需要提及的是,实际应用中,还有很多问题。比如公钥被伪造怎么办?每个技术虽然相对于旧技术有改进,但是也会带来新的问题。新的问题也有对应的解决办法,由于这是一篇入门教程,不再做深入介绍。

总结

说到底两种加密方式,区别仅在于锁和钥匙的分配不同。

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

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

相关文章

【转】解决WCF大数据量传输 ,System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接...

开发中所用的数据需要通过WCF进行数据传输,结果就遇到了WCF大量传输问题 也就是提示System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接 网上解决方案都是千篇一律互相转发的,并且没有明确的解决方案或者按照,各个博客中…

【手算】逆序数树形计算方法

计算过程: 给定一列数,从左向右,依次将每个数拿出来,作为一棵树的树根。从剩下的数中,找比此数小的数,作为子节点加入到树中。重复1、2,直到到达最后一个数停止。 数出二级节点,即…

python 惰性_Django中的“惰性翻译”方法的相关使用

使用 django.utils.translation.gettext_lazy() 函数,使得其中的值只有在访问时才会被翻译,而不是在 gettext_lazy() 被调用时翻译。例如:要翻译一个模型的 help_text,按以下进行:from django.utils.translation impor…

【转】SVN冲突出现场景

如今是一个团结协作的时代,开发一个系统,往往会多人协作共同完成。版本管理是必不可少的,常用的软件有Git,SVN等。今天说一下,SVN管理版本时,如果出现冲突后,如何快速解决冲突。 首先说明一个问…

Qt Creator和Visual Studio双环境开发技能攻略

前言 刚接触Qt开发时,大多数同学的第一行Qt代码是在Qt Creator中写下的。 众所周知,Qt Creator是Qt官方提供的Qt集成开发环境1,提供了对Qt应用开发的全过程支持。也就是说,使用Qt Creator做Qt开发是完全够用的。不管是在Windows…

大疆无人机高程不准_大疆消费级无人机快速倾斜摄影测量实践

摘要:分别用 RTK两种测量模式测定像控点,用大疆消费级无人机 Phantom4PRO 开展倾斜摄影测量,最后进行成果检验。结果表明:RTK 电台模式(不做坐标校正,精度低)、RTK-CORS 网络模式测定像控点都能…

【转】CLR Profiler 性能分析工具 (转)

最近关注程序性能的优化方面,本想写篇CLRProfiler的简要文档,看到pengpeng已写好,那就转载好了,偷偷懒。 .Net的尽管拥有非常强大调试器,但也有很多局限性,只限于CLR之上,无法得到CLR的具体细节…

Qt学习资料汇总

1. 在线资源 脚本之家在线手册:Qt 快速入门系列教程W3CSchool:Qt 学习之路 2. 书籍资源 链接:https://pan.baidu.com/s/12zoOQykCA-J8x_1FVahFWA 提取码:关注公众号“Qt未来工程师”,后台回复“书籍”获取提取码。 …

魔百盒哪款型号配置高_松下负离子吹风机怎么样哪款好?推荐型号?2020年9月松下负离子电吹风选购攻略...

先说结论,方便时间不多的朋友,松下(panasonic)负离子吹风机怎么样哪款好?推荐型号?1、EH-ENE2-A405——松下(panasonic)负离子电吹风机推荐EH-ENE2-A405。带负离子功能,1…

【转】VS编译环境命令窗口中的命令

先描述一下VS中的几个窗口 命令窗口(Command Window) 利用命令窗口,可以查询并设置变量的值来控制程序的执行和输出,也可以在命令窗口中编写很多小的代码段来改变程序的输出。当程序处于中断模式时,命令窗口只允许输…

【软技能】代码先放一放,学习一下工程的概念

前言 本篇文章适合于以下同学阅读 接触编程时间不长的初学者;经常需要编程,但是对工程的概念相对模糊的同学。 初步认识工程 工程的概念大家或多或少都有接触过。比如在开发环境(如Qt Creator)里编写一个软件,我们…

python程序设计搜题软件_智慧职教APPPython程序设计基础答案搜题公众号

智慧职教APPPython程序设计基础答案搜题公众号更多相关问题暑淫证与火热证的共同点是A.都有明显的季节性B.脉数有力C.发热神昏D.舌红绛每种生物都是有自己特有的一套遗传密码。()患者,女,34岁。营业员&…

【转】WebAPI ASP.Net 发布部署中常见的两个错误未能找到 CodeDom未能加载System.Web.WebPages.Razor

未能加载文件或程序集“System.Web.WebPages.Razor, Version3.0.0.0, Culturene 未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft... 在包管理器中异常安装包MVC5 及 CodeDom,重新编译部署即可…

QSplitter设置宽高比例的正确方法

问题 实际开发中,需要经常调整QSplitter中子窗口的宽度/高度比例。对水平QSplitter来说,是宽度比例;对垂直QSplitter来说,是高度比例。下面以水平QSplitter为例说明。 我们首先应该会想起看看QSplitter是不是有设置比例的函数。…

我要回家软件_工具用的好,下班回家早,推荐几个堪称神器的高效率软件

工具用的好,下班回家早,别人已经早早下班,你还在哼哧哼哧的加班,有时候并不是你比别人慢,而是你没有找到提高工作效率的工具呀,我这次推荐几个堪称神器的高效率软件工具,也许能极大的提高你的工…

【转】带你玩转Visual Studio——01.开篇介绍

开篇之前,先唠叨几句 本人从事C开发工作一年半,总想就C开发方面写点东西。写什么呢?想了一下还是写点跟开发密切相关的吧,要说跟开发最密切相关的那莫过于就是开发工具了,也就是常常说的集成开发环境(IDE)。 这一年多…

Qt中的角度和正方向描述清单

在Qt开发中,不同的API对应有不同的0度和正方向,本文做一个汇总,方便查阅。 函数/模块角度描述画圆弧QPainter::drawArc3点钟方向为0度,逆时针为正向画弦QPainter::drawChord3点钟方向为0度,逆时针为正向画圆饼QPainte…

丢失模式不联网有用吗_用眼过度,打开手机“护眼模式”真的有用吗?

现如今,人们越来越离不开手机,用手机办公或者用手机娱乐,因疫情在家学习的学生们,都需要通过手机来进行学习,深夜剁手的你是不是也躲在被子里,一遍又一遍地刷新着消息,入睡前的最后一件事是关掉…

【基础】Qt-VS调试器下载与配置

前言 因为MSVC版的Qt不自带调试器,所以在Windows上使用MSVC版的Qt进行开发时,需要配置调试器。 本文讲解了在Windows下,下载和配置MSVC版Qt调试器的过程,并给出下载地址。 调试器选择 下表列出了不同平台下的调试器选择方案&am…

【转】带你玩转Visual Studio——02.带你新建一个工程

接着上一篇文章带你玩转Visual Studio——开篇介绍继续讲这个主题&#xff0c;现在我们从创建一个新的工程开始。 一步一步创建项目 依次选择菜单&#xff1a;File\New\Project&#xff0c;打开New Project对话框。<1>.选择项目类型&#xff1a;Win32 Console Applicat…