一、公钥加密

假设一下,我找了两个数字,一个是1,一个是2。我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥。

我有一个文件,不能让别人看,我就用1加密了。别人找到了这个文件,但是他不知道2就是解密的私钥啊,所以他解不开,只有我可以用数字2,就是我的私钥,来解密。这样我就可以保护数据了。

我的好朋友x用我的公钥1加密了字符a,加密后成了b,放在网上。别人偷到了这个文件,但是别人解不开,因为别人不知道2就是我的私钥,只有我才能解密,解密后就得到a。这样,我们就可以传送加密的数据了。

二、私钥签名
如果我用私钥加密一段数据(当然只有我可以用私钥加密,因为只有我知道2是我的私钥),结果所有的人都看到我的内容了,因为他们都知道我的公钥是1,那么这种加密有什么用处呢?

但是我的好朋友x说有人冒充我给他发信。怎么办呢?我把我要发的信,内容是c,用我的私钥2,加密,加密后的内容是d,发给x,再告诉他解密看是不是c。他用我的公钥1解密,发现果然是c。
这个时候,他会想到,能够用我的公钥解密的数据,必然是用我的私钥加的密。只有我知道我得私钥,因此他就可以确认确实是我发的东西。

这样我们就能确认发送方身份了。这个过程叫做数字签名。当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名

总结:公钥和私钥是成对的,它们互相解密。

公钥加密,私钥解密。

私钥数字签名,公钥验证。

深入浅出 - 公钥、私钥和数字签名最通俗的理解相关推荐

  1. 一个故事讲解公钥私钥和数字签名,很深刻!

    关于公钥私钥和数字签名, 通过一个发送邮件的故事让大家有一个深刻的理解,非常棒的案例: http://www.blogjava.net/yxhxj2006/archive/2012/10/15/389 ...

  2. 怎样理解公钥,私钥和数字签名

    怎样理解公钥,私钥和数字签名 一.公钥加密 假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看, ...

  3. 公钥,私钥和数字签名

    一.公钥加密  假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了.别人找到了这 ...

  4. (转)公钥,私钥和数字签名这样最好理解

    转自: 公钥,私钥和数字签名这样最好理解_21aspnet的博客-CSDN博客_公钥签名还是私钥签名一.公钥加密 假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们 ...

  5. 公钥,私钥和数字签名这样理解轻松入门!

    公钥,私钥和数字签名这样理解轻松入门! 参考博文:https://blog.csdn.net/21aspnet/article/details/7249401 (公钥和私钥是成对出现的,可以把他们看成 ...

  6. 公钥、私钥、数字签名、数字证书、对称与非对称算法、HTTPS

    2019独角兽企业重金招聘Python工程师标准>>> 对公钥和私钥有点稀里糊涂的,搜索了一些资料,作一些整理吧,先看这个: 加密--公钥 解密--私钥 签名--私钥 验证--公钥 ...

  7. 公钥、私钥、数字签名和数字证书的概念及解密

    http协议的数据传递是明文的, 也就是从服务器传递给浏览器的内容是明文的, 这个信息如果被截取了,内容也就完全暴露了.所以大部分的互联网网站和应用使用的基本都是https协议,在申请和配置网站的ht ...

  8. 公钥、私钥和数字签名是什么

    鲍勃有两把钥匙,一把是公钥,另一把是私钥. 鲍勃把公钥送给他的朋友们----帕蒂.道格.苏珊----每人一把. 苏珊要给鲍勃写一封保密的信.她写完后用鲍勃的公钥加密,就可以达到保密的效果. 鲍勃收信后 ...

  9. 公钥,私钥,数字签名,证书图解(转)

    一.公钥加密 假设一下,我找了两个数字,一个是1,一个是2.我喜欢2这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,1是我的公钥. 我有一个文件,不能让别人看,我就用1加密了.别人找到了这个 ...

最新文章

  1. 5年时间服务器从0到200,一个创业公司的架构野蛮生长史
  2. 转发萌新人鱼博客-Java面向对象-面向对象编程之基本概念
  3. SpaceX完成“星舰”空中悬停,距载人探火星还远吗?
  4. 你可以通过这13种方法帮助Linux发展
  5. 使用python和javascript进行数据可视化
  6. windows服务开发(一、安装)
  7. [Unity3d][NGUI]打包NGUI预制件成Assetbundle 两种思路.
  8. 场论 梯度 旋度 散度
  9. linux java Cannot allocate memory
  10. 匹配滤波器的仿真——线性调频信号
  11. linux 运行有道词典,Ubuntu中使用有道词典
  12. 计算机病毒和恶意软件管理制度,白城师范学院计算机病毒防治管理制度
  13. 施一公:优秀的科学家如何成长?
  14. linux安装谷歌中文,CentOS 7安装谷歌拼音中文输入法
  15. Lua unpack函数用法
  16. VirusTotal 为 Chrome 和 Firefox 发布 VT4Browsers 扩展
  17. NYOJ-712(动态规划)-题目----------------------------- 探寻宝藏
  18. 家用风扇控制系统c语言程序设计,智能风扇控制系统设计.doc
  19. 值得拥有的一份详细的计算机系统硬件结构清单:系统总线、存储器、I/O设备
  20. WJ的操作系统知识点总结

热门文章

  1. 学生信息管理系统c 语言程序设计报告,C语言程序设计报告(学生信息管理系统)[1].txt...
  2. 机器学习与计算机视觉(移动端深度学习优化框架)
  3. C语言和设计模式(命令模式)
  4. 一步一步写算法(之双向链表)
  5. linux怎么创建牡蛎_Linux文件也有快捷方式?有的,你会用吗?
  6. 现在2019年读职高学计算机好吗,读职高有用吗 学什么专业有发展
  7. python输出文档内容_python输出文件
  8. mongodb和mysql创建表_MongoDB 数据库创建删除、表(集合)
  9. linux 项目内存吃掉,Linux内存被吃掉了,它去哪里了?
  10. php参数传递及数据库连接方法