前言
目前项目中需要对接口中的一些参数进行加密处理,考虑了许久选择了RSA+AES 这两种加密算法公用的方式进行处理。
RSA加密算法
RSA简介
RSA加密算法是一种非对称加密算法,密钥为一对公钥和私钥组成。通常把公钥发送给使用方,私钥由接收方自己保存。
优点是解决了对称加密算法如何保存密钥的问题。
使用方法:
- 使用公钥加密的数据,利用私钥进行解密
- 使用私钥加密的数据,利用公钥进行解密
RSA缺点
由于RSA算法的原理都是大数计算,使得RSA最快的情况也比对称加密算法慢上好几倍。速度一直是RSA的缺陷,一般来说RSA只用于小数据的加密.RSA的速度是对应同样安全级别的对称加密算法的1/1000左右。
AES加密算法
AES简介
AES加密算法是一种对称加密算法,加密与解密的密钥是相同的。优点是比一般的非对称加密算法速度要快。
AES缺点
由于加密与解密的密钥是相同的,如果前后端利用AES进行加密的话,如何保存密钥成了一个非常头疼的问题。
RSA+AES 整体流程
- 服务端生成RSA 一对公私钥,并把公钥发送给前端。
- 前端随机生成AES的密钥,并通过RSA的公钥进行加密生成密文。
- 前端通过AES对接口数据进行加密,并将通过RSA的公钥进行加密生成密文通过head或者当初参数传输到后台。
- 后台通过私钥对密文进行解密获取AES的密钥,之后用AES的密钥对参数进行解密。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/15316.html