项目之间调用加密

与A app集成技术方案实现细节以及待处理问题如下:

实现细节:

  1. 约定URL
    • token: “email,ts” 组合通过RSA私钥签名得到的信息。
    • email:  A app当前登录用户邮箱
    • ts:  A app系统当前时间戳
    • 整个的url A app已经进行了URL encode处理

     
  2. A app签名方式:
    • 加密方式RSA,
    • 秘钥格式为PKCS1
    • 签名hash方法为SHA-1

      3. B app解析请求,并进行验签。以下三个判断都通过,用户即可登录成功。

                a) 验签通过

                b) email地址存在于系统的用户表中

                c) ts的时间与系统当前时间差不超过半小时

 

 注意点

生产部署需要调整部分:

A app使用的python rsa包,密钥格式为PKCS1,B app当前使用的jar,支持格式为 PKCS8。在部署生产环境时,如果进行密钥对切换,A app需要提供新的PKCS8的public key

生成PKCS8的方式:

1. A app基于python rsa生成PKCS1密钥对,自己持有PKCS1的秘钥,用于签名

2. 基于PKCS1的秘钥生成PKCS8的秘钥,转换命令如下:

                openssl pkcs8 -topk8 -inform PEM -in pri_pkcs1.pem -outform pem -nocrypt -out priv_pkcs8.pem

 

3. 基于PKCS8的秘钥生成PKCS8的公钥,提供给biologic profile使用,转换命令如下:

                openssl rsa -in priv_pkcs8.pem -pubout -out pub_pkcs8.pem

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值