1、密码学基础
明文:原始数据
密码:明文被算法加密,变为密码。密文是可以被解密的。
密钥:解开密文的钥匙。分为对称密钥和非对称密钥。
对称加密:使用同一个密钥进行加密和解密。
特点:加密解密速度快
明文+私钥=密文
密文+私钥=明文
非对称加密:使用公钥加密,私钥解密。
特点:解密速度慢
明文+公钥=密文
密文+私钥=明文
2、HTTPS数据传输
问题:
1、客户端要把敏感数据发给服务器端,且不能被别人破译,怎么办?
2、服务器端也要把敏感数据发给客户端,且不能被别人破译,怎么办?
解决:
1、服务器端配置一对非对称的密钥:公钥(仅能加密)和私钥(仅能解密)。
2、公钥可以给任何客户端,客户端加密后的数据,只有服务器能解密。
3、私钥留给自己,打死都不外借,只用来解密公钥加密过的数据产。
4、非对称密钥加密解密速度慢,不能多用客户端买了2把对称的钥匙,一把留给自己从不外借,一把用公钥加密后,寄给服务端。
5、服务端拿到经过公钥加密后的客户端密钥,用它的私钥解密最终服务端安全的得到了客户端对称的钥匙。
6、客户端和服务端需要传输数据时,都采用客户端密钥,进行对称加密进行数据传输。
终于客户端和服务端可以顺利的通信了。