https加密完整过程

step1: “客户”向服务端发送一个通信请求

“客户”->“服务器”:你好

step2: “服务器”向客户发送自己的数字证书。证书中有一个公钥用来加密信息,私钥由“服务器”持有

“服务器”->“客户”:你好,我是服务器,这里是我的数字证书

step3: “客户”收到“服务器”的证书后,它会去验证这个数字证书到底是不是“服务器”的,数字证书有没有什么问题,数字证书如果检查没有问题,就说明数字证书中的公钥确实是“服务器”的。检查数字证书后,“客户”会发送一个随机的字符串给“服务器”用私钥去加密,服务器把加密的结果返回给“客户”,“客户”用公钥解密这个返回结果,如果解密结果与之前生成的随机字符串一致,那说明对方确实是私钥的持有者,或者说对方确实是“服务器”。

“客户”->“服务器”:向我证明你就是服务器,这是一个随机字符串 //前面的例子中为了方便解释,用的是“你好”等内容,实际情况下一般是随机生成的一个字符串。
“服务器”->“客户”:{一个随机字符串}[私钥|RSA]

step4: 验证“服务器”的身份后,“客户”生成一个对称加密算法和密钥,用于后面的通信的加密和解密。这个对称加密算法和密钥,“客户”会用公钥加密后发送给“服务器”,别人截获了也没用,因为只有“服务器”手中有可以解密的私钥。这样,后面“服务器”和“客户”就都可以用对称加密算法来加密和解密通信内容了。

“服务器”->“客户”:{OK,已经收到你发来的对称加密算法和密钥!有什么可以帮到你的?}[密钥|对称加密算法]
“客户”->“服务器”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]
“服务器”->“客户”:{你好,你的余额是100元}[密钥|对称加密算法]
…… //继续其它的通信

上面的过程已经十分接近HTTPS的真是通信过程了,完全可以按照这个过程去理解HTTPS的工作原理。相信大家都应该能明白HTTPS通信了。

最新文章

  1. Entity Framework7 入门之全功能.NET版本下使用EF7(含源码)另附数据迁移常见错误处理
  2. the bundle at bundle path is not signed using an apple submission certificate
  3. Messenger
  4. org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found
  5. dp重拾-01背包--HDU 2602
  6. jQuery中的bind绑定事件与文本框改变事件的临时解决方法
  7. zookeeper入门知识
  8. 在node中使用 ES6
  9. uwp版的音乐播放器练手
  10. PostgreSQL 的 distinct on 的理解
  11. android CheckBox与监听
  12. Data Source与数据库连接池简介 JDBC简介(八)
  13. emacs 集成astyle
  14. 10.1.翻译系列:EF 6中的实体映射【EF 6 Code-First系列】
  15. js阻止事件冒泡的两种方法
  16. 6、SpringMVC源码分析(1):分析DispatcherServlet.doDispatch方法,了解总体流程
  17. Objective C, post 请求
  18. jsp与Ajax技术
  19. Peter Norvig:学习在于挑战和重复
  20. LG3389 【模板】高斯消元法

热门文章

  1. hadoop 学习笔记
  2. python发送邮件 大全汇总
  3. bug: 使用 iOS 系统方法进行二维码扫描,扫描区域的问题
  4. python下载youtube视频
  5. 【叶问】 MySQL常用的sql调优手段或工具有哪些
  6. Java基础知识(JAVA之泛型)
  7. MySQL5.7配置基于GTID的复制
  8. dbdeployer 快速安装MySQL8.0各测试环境
  9. (转)从拜占庭将军问题谈谈为什么pow是目前最好的共识机制
  10. jenkins windows slave 报错ERROR: Error cloning remote repo 'origin'