最开始网络请求都是http请求,http请求速度快,但是所有的请求都是明文的,这就导致黑客可以通过网络嗅探(抓包)直接获取用户的敏感信息,比方说登录名、登陆密码、银行卡号等。
随着网络的迅速发展,大家对安全越来越注重,因此出现了基于http的https请求。https请求通过对称加密、非对称加密、证书等方法进行数据加密,这样黑客即便获取到了网络传输的报文,也无法知道是什么。
想要理解https,则先要理解一些基本的密码学概念。
明文:未被加密的原始数据。
例如:你好
密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。
例如:*****
密钥:密钥可以简单理解为一个参数,它在明文转换为密文或将密文转换为明文的算法中输入。
例如:#$
加密示意:
你好+加密算法+#$ =*****
加密分为对称加密和非对称加密两种。
对称加密:又叫私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据,因此称为“对称”。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密。
由于对称加密的算法公开,所以一旦密钥被泄露,那么整个通信就会被破解,所以对称加密的缺点是密钥安全管理困难。
加密过程:明文+加密算法+私钥=>密文
解密过程:密文+解密算法+私钥=>明文
非对称加密:也叫做公钥加密。非对称加密使用一对密钥,即公钥和私钥,且二者成对出现。私钥自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得。用公钥或私钥中的任何一个进行加密,用另一个进行解密。
由于加密和解密使用了两个不同的密钥,这就是非对称加密“非对称”的原因。非对称加密与对称加密相比,其安全性更好,但是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
被公钥加密过的密文只能被私钥解密,过程如下:
明文+加密算法+公钥=>密文,密文+解密算法+私钥=>明文
被私钥加密过的密文只能被公钥解密,过程如下:
明文+加密算法+私钥=>密文,密文+解密算法+公钥=>明文
由于两个加密算法的特点不同,https请求综合应用了这两种算法。