RSA与AES实现数据加密传输
RSA、AES简介 RSA:非对称加密,需要提前生成两个密钥(一对的),通过其中一个密钥加密后的数据,只有另一个密钥能解密。通常这两个密钥中有一个会暴漏出来,即对外公开的,这个密钥称为“公钥”,反之另一个是隐藏起来的,不公开的密钥称为“私钥”。 EAS:对称机密,数据的加密和解密都只使用同一个密钥。 关于加密传输 是为了保证数据 传输过程 中,数据即使被“中间人”截获,“中间人”也无法解析其中的数据,使“中间人”无法得知我们实际要传输的数据,以达到保护数据的目的。如果客户端本身存在安全问题,则无法保证数据的安全,如浏览器端JS变量存储了即将传输的用户密码,这个变量被其他非信任脚本或其他方式获取到了,会导致数据泄露,这种问题并不是加密传输所能处理的。加密传输能保障数据,有一个前提,那就是 对于本地动态生成的变量,就认为是安全的,是认为第三方无法获取的 。 RSA和AES配合实现加密传输 客户端往服务端传输加密数据 客户端每次请求前,都随机生成不同的AES密钥,保存到变量aesKey中 使用aesKey对要传输的信息进加密,得到加密内容A 通过预置在客户端的RSA公钥rsaPublicKey对aesKey加密,得到加密内容B 将内容A和内容B传输到服务端 服务端接收到内容A和内容B 使用预置在服务器端的RSA私钥rsaPrivateKey对内容B进行解密