非对称加密RSA及对称加密3DES方式

非对称加密RSA及对称加密3DES方式

接收方(服务端)产生一对秘钥即公钥和私钥,公钥传给接入方(客户端),私钥自己留存;
同时客户端也要产生一对公钥和私钥,公钥提供给接收方私钥自己留存。
接入方生成随机码并用接收方提供的公钥进行加密,同时再用随机码与要传输的信息加密,发送给服务端。
服务端获取加密过的随机码和信息后,随机码通过接收方的私钥解密得到这就是(完成了一次非对称加密),再用随机码解密加密后的信息(完成了一次对称加密)。
非对称加密就是:一方使用公钥加密,另一方使用私钥解密。
对称加密就是:双方共同用一个秘钥进行解密

如常见接口安全通信的方式:

1)接收方提供一个RSA公钥(zzyRsaPubKey)给接入系统
2)接入系统生成RSA密钥对,留用私钥(channelRsaPriKey),把RSA公钥(channelRsaPubKey)上传给接收方

发起请求(接入方)

1) 生成24个字节(数字字母组合)的随机3des密钥(channelRd3DesKey);
2) 使用接收方提供的RSA公钥(zzyRsaPubKey)对随机3des密钥(channelRd3DesKey)做加密,得到3des密钥密文encryptRd3DesKey(encryptKey);
3) 使用随机3des密钥(channelRd3DesKey)对文档定义的业务参数data做加密,得到业务参数密文encryptData;
4) 使用自己系统的私钥(channelRsaPriKey)
对MD5(channel_no+timestamp+encryptKey+encryptData)做签名,得到签名参数siginature;

// http请求参数为
    {
        " encrypt_key":"encryptKey",
        " encrypt_data":"encryptData",
        "mac":"siginature"
    }
请求处理(接收方)

1) 结合(channel_no+ timestamp+encryptKey+encryptData)和签名参数siginature,用接入系统提供的公钥(channelRsaPubKey)验签,验证成功则证明报文的有效性,验证失败则直接返回报错。
2) 解密encryptKey,得到channelRd3DesKey;
3) 用3des的密钥channelRd3DesKey解密encryptData,得到业务参数明文data;

返回(接收方)

1) 生成24个字节(数字字母组合)的随机3des密钥(zzyRd3DesKey);
2) 使用接入系统提供的RSA公钥(channelRsaPubKey)对随机3des密钥(zzyRd3DesKey)做加密,得到3des密钥密文encryptRd3DesKey;
3) 使用随机3des密钥(zzyRd3DesKey)对文档定义的返回的业务参数data做加密,得到返回参数密文encryptData;
4) 对MD5 (encryptRd3DesKey+encryptData)做签名,得到签名参数siginature;

//返回参数为:
    {
        "encrypt_key":"encryptRd3DesKey",
        "encrypt_data":"encryptData",
        "mac":"siginature"
    }
返回处理(接入方)

1) 结合(encryptRd3DesKey+encryptData)和签名参数siginature,用接收方提供的公钥(zzyRsaPubKey)验签,验证成功则证明报文的有效性,验证失败则记录丢弃。
2) 用自己的rsa私钥(channelRsaPubKey)解密encryptRd3DesKey,得到zzyRd3DesKey;
3) 用3des的密钥zzyRd3DesKey解密encryptData,得到返回参数明文data;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值