在我们访问页面的过程中,经常可以看到使用https的访问方式,那https到底是什么呢?其实https是使用了SSL进行加密,SSL是Secure Socket Layer的缩写,即安全套接层协议。要了解SSL加密,首先要了解对称加密和非对称加密。
对称加密:即加密方和解密方都使用相同的密钥(码),加密解密使用同一个密码,加密速度快,典型的对称加密算法有DES,AES等。
非对称加密:密钥成对出现,也就是说加密和解密使用的密码是不一样的,可以称为公钥和私钥,而且无法根据私钥推断出公钥,也无法根据公钥推断出私钥,使用公钥加密的只能使用私钥解密,使用私钥加密的只能使用公钥解密,加密速度较慢,典型的算法有:RSA,DSA等。
HTTPS:有了以上加密方法,我们就可以设计一种无法让他人知道你的通讯信息的加密方法如下:
1.在服务器端存在一个公钥和私钥。
2.客户端从服务器端获得这个公钥。
3.客户端随机产生一个随机的对称密钥。
4.客户端使用公钥对对称密钥进行加密(不对称加密)。
5.客户端发送加密后的密钥到服务器端。
6.服务器端使用私钥对密钥解密,然后双方使用这个密钥对通信信息加密通信(对称加密)
HTTPS加密流程如下图:
当然实际的SSL实现算法复杂的多,并有数据校验、身份验证等功能,这儿只是简单介绍了一个原理。