对称加密
客户端和服务端各有一个相同的密钥
密钥恒久不变
安全性不是很高
方案一
客户端随机密钥
客户端每次请求前都生成一个随机密钥
发送请求时将随机密钥发送给服务端
服务端用随机密钥对请求解密和响应加密
随机密钥可能会被截获=>数据密文+解密算法+密钥=明文
方案二
服务端随机密钥
客户端先请求服务器获得随机密钥
客户端用随机密钥加密请求发送
服务端用随机密钥解密请求加密响应
随机密钥也可能会被截获=>数据密文+解密算法+密钥=明文
非对称加密
服务器端有一个密钥对,公钥和私钥,公钥进行加密,私钥进行解密
客户端先服务器获得公钥
客户端用公钥加密请求发送
服务端用私钥解密得到数据明文
实现了请求的加密
即使被截获到了公钥,没有私钥也无法解密
至于响应的加密
也用非对称加密
客户端一个密钥对,公钥和私钥,公钥进行加密,私钥进行解密
客户端发送请求的同时将客户端公钥发送给服务端
服务端用客户端公钥对响应数据进行加密返回给客户端
客户端用私钥进行解密得到响应数据明文
实现了响应的加密
缺点:有点繁琐
简化
响应采用对称加密
客户端生成随机密钥发送给服务器
随机密钥使用非对称加密传输
服务器将响应数据用随机密钥加密
这样的结果就是
请求用非对称加密,响应用对称加密,对称密钥用非对称加密传输
再简化
请求和响应都用对称加密
对称密钥由客户端随机生成,采用非对称加密传输
也就是HTTPS了
对数据进行对称加密,对称加密的密钥采用非对称加密。
谢谢大家观看,如果发现博文有问题,多谢各位指点一二,如果有不懂的可以加QQ问我3152524195。