其他分享
首页 > 其他分享> > 接口调用添加RSA加解密、加签验签的实现

接口调用添加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