一、什么是https

https是http的升级,因为http是明文传输的,所以非常不安全,https在http的基础上进行了数据加密。

二、https的加密方式

1.对称加密

服务端会给客户端发送一个key,客户端利用key来进行数据加密,传输给服务端,服务端再用key进行解密。

但是这样黑客依然可以利用劫持key来或者数据

2.非对称加密

非对称加密是有一个私钥和一个公钥,服务器会把私钥发给客户端,客户端用来加密传输给服务器,服务器利用公钥进行解密,这样黑客即便是劫持了私钥,也不能解密数据

三、https会同时使用对称和非对称加密方式

原因是为了节省成本

先看看两种加密的运行方式:

1.服务器会先利用非对称方式给客户端发动一个公钥

2.客户端利用公钥加密A并传给服务端

3.服务端利用私钥解密拿到A

4.这样客户端和服务端都有了A,也就是对称加密的KEY

5.服务端和客户端利用本地的A进行加密和解密,从而避免了A钥匙的泄露

这样的加密方式是不是很完美,然而还有漏洞,这就引出了安全证书

四、什么是安全证书

在使用对称和非对称加密的过程中看似无懈可击,但是黑客可以在刚开始劫持数据,给客户端发送伪造的私钥,客户端拿到假的私钥进行加密,黑客利用伪造的公钥进行解密,这就造成了数据泄露。

这时候利用第三方机构提供认证的安全证书作为媒介

1.服务器会先给浏览器发送安全证书

2.客户端解析安全证书并验证他的合法性

3.如果是合法的客户端就拿到了证书里的公钥对A加密并发送给服务器

4.服务器拿到加密的A利用私钥进行解密(非对称)

5.这样客户端和服务端都有了A,也就是对称加密的KEY(非对称)

4.服务端和客户端利用本地的A进行加密和解密,从而避免了A钥匙的泄露(对称)

五、最后来看一下https传输的全过程

最新文章

  1. Struts2中的Ognl
  2. MySQL隐式转化整理
  3. XMLHttpRequest对象用法
  4. juqery 实现商城循环倒计时
  5. 移动端类似IOS的滚动年月控件(需要jQuery和iScroll)
  6. Flex设置外部浏览器
  7. DateTime.TryParseExact 万能时间格式转化
  8. SQL 2008 数据库迁移
  9. ural1671 Anansi's Cobweb
  10. vuex的使用
  11. The 3rd tip of DB QueryAnalyzer
  12. RowKey设计之单调递增行键/时序数据
  13. Intellij IDEA超好用的快捷键
  14. css小知识
  15. caffe编译报错 cudnn.hpp:127:41: error: too few arguments to function ‘cudnnStatus_t cudnnSetPooling2dDescriptor
  16. PyChram快捷键
  17. 微软Power BI 每月功能更新系列——10月Power BI 新功能学习
  18. 记住,永远不要在MySQL中使用“utf8”编码[转载]
  19. hadoop的namenode故障处理方法
  20. CF&&CC百套计划1 Codeforces Round #449 C. Willem, Chtholly and Seniorious (Old Driver Tree)

热门文章

  1. Java9的模块化是什么
  2. Mysql常用操作笔记
  3. java动态代理--代理接口无实现类
  4. JdbcTemplate ?
  5. 详细描述一下 Elasticsearch 索引文档的过程 ?
  6. Redis 的回收策略(淘汰策略)?
  7. 学习FastDfs(四)
  8. servlet中的HttpServletRequest对象
  9. Java 新内存(cache)模型解析
  10. 11_滞后补偿器_Lag Compensator_Matlab_Simulink