接口调用添加RSA加解密、加签验签的实现
作者:互联网
原理
对外接口为了安全起见,需要进行相应的安全处理:主要是数据加密传输和身份认证。数据加密传输有对称加密和非对称加密两种,为了更加安全起见采用非对称加密比较好些,身份认证采用数字签名可以实现。
非对称加密缺点:RSA加解密速度慢、有最大长度要求。
方案一
仅采用非对称加密
RSA对内容长度的要求可以通过分组加解密解决
参考:https://blog.csdn.net/draven1122/article/details/55212252
方案二
非对称加密+对称加密
具体流程
调用方
1.签名生成:接口参数->摘要算法(SHA)->参数摘要->非对称加密(自己RSA私钥)->签名
2.内容(接口参数 + 签名 ) -->对称加密(AES)--> 内容密文
3.AES密钥-->非对称加密(对方RSA公钥)--> AES密钥密文
4. 内容密文(请求体)+AES密钥密文(请求头)-> 传输给接收方
接收方
1. 获取AES密钥密文-> 非对称解密(自己RSA私钥)->AES密钥
2. 内容密文-> AES密钥-> 内容明文
3. 计算签名:内容里的参数->摘要算法(SHA)->参数摘要->非对称加密(对方RSA公钥)->签名
4. 比较计算得到的签名与传递过来的签名是否一致,一致则验签通过,继续执行接口
5. 返回值(加解密可选)
参考文章:
https://www.cnblogs.com/pcheng/p/9629621.html
https://blog.csdn.net/woniu211111/article/details/108114402
https://blog.csdn.net/draven1122/article/details/55212252
标签:AES,加密,加解密,RSA,签验,密钥,密文,非对称 来源: https://www.cnblogs.com/hdwang/p/16310314.html