zoukankan      html  css  js  c++  java
  • RSA签名、验签、加密、解密

    最近在做一个项目,与一个支付渠道进行连接进行充值,为了安全,每个接口访问时,都要先登陆(调用登陆接口),拿到一个sessionKey,后续业务接口内容用它来进行3DES加密处理。而登陆需要用到RSA进行签名加密处理。大概就是这样一个业务流程。

    一、密钥生成及管理:
      1、交互双方各生成一对密钥:私钥和公钥;
      2、自己保留私钥,把公钥给到对方;
      3、用自己的私钥进行签名,对方的公钥进行验签;
      4、用对方的公钥进行加密,自己的私钥进行解密;

    二、需要用到的密钥证书:
      1、对方公钥
      2、本方公钥
      3、本方私钥

    三、用户登陆
      请求:
      1、用【对方公钥】对明文数据进行【RSA加密】,結果進行Base64String          ——> InputData
      2、用【本方私钥】对明文数据MD5後进行【RSA签名】,結果進行Base64String         ——> InputData_Sign
      3、取【本方公钥】证书流,結果進行Base64.encode()                   ——> CerData
      4、用【本方私钥】对前置公钥内容MD5後进行【RSA签名】,結果進行Base64String    ——> CerData_Sign
      响应:
      1、用【本方私钥】对SessionKey进行【RSA解密】                   ——> SessionKey
      2、用【对方公钥】对解密后的SessionKey进行【RSA验签】               ——> SessionKey_Sign

    四、业务处理
      请求:
      1、用【SessionKey】对明文数据进行【3DES加密】                    ——> InputData
      2、用【本方私钥】对明文数据MD5後进行【RSA签名】                  ——> InputData_Sign
      响应:
      1、用【SessionKey】对返回数据进行【3DES解密】                    ——> OutputData
      2、用【本方公钥】对解密后的数据进行【RSA验签】                   ——> OutputData_Sign

  • 相关阅读:
    IT公司笔试题(一)
    select与poll函数介绍
    ps命令介绍
    strace命令介绍(转)
    STREAMS流机制
    记录锁
    spingboot启动报驱动Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of th
    list通过lambda 表达式去重,筛选
    Idea查看一个类和子类(实现类)的结构图
    Redis主从配置
  • 原文地址:https://www.cnblogs.com/caoweixiong/p/10899156.html
Copyright © 2011-2022 走看看