朋友们、伙计们,我们又见面了,本期来给大家带来HTTPS协议相关的知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成!
C 语 言 专 栏:C语言:从入门到精通
数据结构专栏:数据结构
个 人 主 页 :stackY、
C + + 专 栏 :C++
Linux 专 栏 :Linux
目录
HTTPS协议也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层;
HTTP协议的内容都是按照文本的方式明文传输的,这就导致在传输过程中可能会出现一些数据被篡改的情况。
在正式了解HTTPS协议之前我们先来了解一下HTTPS的这个加密过程;
1. 概念准备
1.1 加密
加密就是把 明文 (要传输的信息)进行一系列变换,生成 密文。
解密就是把 密文 再进行一系列变换,还原成 明文。
1.2 为什么需要加密
之前比较容易发生运营商劫持事件;
就比如我们要下载一个软件,然后我们在浏览器上面搜索软件,当我们点击下载的时候,其实并不是我们想要下载的软件,先给我们下载一个中间软件,然后通过这个中间软件再去下载,就比如我遇到的下载软件下载到了360安全卫士;
我在网上找了一些运营商劫持的图片:
基本原理就是:
点击 "下载按钮",其实就是在给服务器发送了一个 HTTP 请求,获取到的 HTTP 响应其
实就包含了该 APP 的下载链接。运营商劫持之后,就发现这个请求是要下载天天动听,
那么就自动的把交给用户的响应给篡改成 "QQ 浏览器" 的下载地址了。
其实不止运营商可以劫持,比如一些网络上的黑客,可以通过此类手段来盗取用户信息,从而获得一些收益等等;
所以在网络上明文传输是比较危险的一件事情;
HTTPS就是在HTTP的基础上进行数据加密,进一步来保证用户的数据安全!
1.3 常见的加密方式
1.3.1 对称加密
只有一个密钥(单密钥),既可以用来加密,也可以用来解密;
- 常见的加密算法:DES、 3DES、 AES、 TDEA、 Blowfish、 RC2 等
- 特点:算法公开、 计算量⼩、 加密速度快、 加密效率⾼
一个简单的对称加密,按位异或:
假设明文:x = 7 密钥:key = 5
加密:a ^ key 得到的密文b = 2
解密:b ^ key 得到的明文a = 7