最近要和第三方企业进行数据对接,就研究了一下身份验证(数据加解密)的事情;记录一下,最后的验证过程;
一、首先是我包装数据发送至第三方企业。
1、采用RSA算法生成非对称加密公私钥,双方交换公钥;
2、动态生成对称密钥,采用的是SM4加解密(AES也OK);
3、对需要传递的报文通过对称密钥加密,然后BASE64编码;
4、用对方的公钥对对称密钥进行加密,然后BASE64编码;
5、用自己的私钥进行签名(签名的数据格式可以自己定义),可以加个对接服务名,签名的数据:(服务名+加密报文+加密密钥);
6、将数据发给第三方结构。
二、第三方解析数据的流程
1、获取到数据后,先是使用我给他提供的公钥进行验签;
2、用他的密钥进行解密密钥;
3、通过解密后的密钥对加密报文进行解密;
4、处理获取到的数据明文,处理完成之后,再次封装(过程同一)加密数据给我;
三、我解析第三方反馈回来的数据
处理方式同二
总结:这样就形成了一个完整的数据加解密的过程(采用非对称(RSA)和对称加解密(SM4或者AES))
RSA中:公钥加密,私钥解密,私钥签名,公钥验签