热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

密码学——公钥与私钥(非对称加密)

转载处:http:www.cnblogs.comdarksirp3704198.html这里不讨论数学原理,只说明其实现和传输过程。我们先假定一个数据的发送方和一个数据的接收方(就叫小红和小

转载处:http://www.cnblogs.com/darksir/p/3704198.html大笑

这里不讨论数学原理,只说明其实现和传输过程。

我们先假定一个数据的发送方和一个数据的接收方(就叫小红和小明好了!)

发送方小红拥有一对密钥:一个公钥和一个私钥。

接收方小明也同样拥有一对密钥:一个公钥和私钥。

注意:这四把钥匙(密码)各不相同!

公钥的概念:公钥是可以在网络上传输的,也就是说接收发送双方都可以知道彼此的公钥,当然,如果你用网络嗅探等技术,也可以在网络上嗅探的公钥的内容,但你仅有公钥是无法解密文件的。

私钥的概念:私钥是用户各自私有的,不会在网络中传输(也就是说不需要接收发送双方彼此交换此密钥),这就保证了此密码的安全性,黑客无法在网络中嗅探到该密钥,而是被严格的储存在用户自己的主机中。

公钥和私钥的关系:公钥加密的数据只有私钥可以解锁,私钥加密的数据只有公钥能解锁,而两者都无法自己解锁自己!这一点是保证数据无法被窃取的关键!而公钥和私钥的唯一区别也接就是公钥会互相交换在网络上传输,而私钥自己保留不在网络上传输。

下面介绍数据加密传出过程(如下图):

想象以下场景:

发送方小红要向接收方小明发送一封情书(好吧,为了配合下面的图我只能编个女追男的故事,让广大吊丝意淫下!),但是小红呢,女孩子嘛,比较害羞,怕某些别有用心的人偷看到他写给心上人的悄悄话,就利用了加密技术,让网络上无聊的人们无法偷窥到它的情书。

第一步:小红用自己的私钥给情书上了第一道锁,这个私钥只有她自己知道。

第二步:其实两人之前相互了解过(通信过),这个时候已经都拥有的对方的公钥,所以小红又在第一步的基础上用小明的公钥给情书加了第二把锁。

第三步:这个时候小红这边就已经把情书加密好了,她很满意,因为已经万无一失了!她把加了两把锁的情书发到网络上传送给小明,这个时候网络上的黑客们也许已经在小红和小明初次幽会并交换公钥的时候窃取到了两人的公钥。但请想想小红的加锁过程,最外面一道锁(第二道锁)是用小明的公钥加密的,也就是说要用小明的私钥来解密才可以打开,但黑客最多只能拥有两人的公钥,而无法获得小明的私钥,这就有效的避免的数据被窃取,即使黑客截获了情书,也只能看到一堆杂乱无章的乱码,而无法真正得知情书的内容。

第四步:小明顺利的接收到了小红的情书,利用自己的私钥,成功解开的外层的锁。(外层的锁是小红用小明的公钥锁的!)

第五步:小明又拿出了小红的公钥,解开了情书内层的锁。这时候就可确定情书确实是小红发的,而不是其他人伪造来忽悠自己的。(内层的锁是小红用自己的私钥锁的!)

最终,小明成功的看到了小红的情书,心中暗爽:吊到妹纸的感觉真好!

注:整个过程中利用两把锁将数据的传输过程严格加密,数据在传输过程中无法被解密,除非黑客入侵了接收方(小明)的电脑,窃取了他的私钥。所以,此种方法可以保证在传输过程中是严格保密的,即使收发双方交换的公钥被嗅探到也无法揭秘。当然,没有绝对的安全,如前面所说,直接被入侵了电脑那就无存在什么秘密了~


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
author-avatar
waxw
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有