服务端 A
客户端 B
服务端则存储A私钥、B公钥
A用于加解密,B用于签名以及验签;
客户端存储A公钥、B私钥,B
用于加解密,A用于签名以及验签;
B请求A,请求数据对象data
1.获取随机keyplain(16位随机字符串)
2.用16位数随机字符串keyplain 使用AES对称加密 加密 data => bizData
3.使用A公钥加密keyplain => key
4.使用B私钥签名data => sign
5.将bizData,key,sign(正常还有时间戳)发送A
A接受B请求解密
1.获取bizData和sign使用B公钥验签
2.使用A私钥解密key => keyplain
3.使用keyplain解密bizData => data
keyplain:16位随机字符串
data :请求数据(明文)
bizData:通过keyplain加密的data
key:通过对方公钥加密的keyplain
sign:使用自己私钥签名data 得到的签名