首页 > SAP > ABAP > RSA加解密成功例子
2024
05-07

RSA加解密成功例子

供应链金融项目连接航信、联易融平台使用了RAS进行加解密验签处理,

以下是航信请求流程

加密:
对明文plainText进行加密,使用对方机构提供res公钥rsaPublicKey,下面是加密过程:
1、随机生成一个128-bit AES秘钥 aesKey
2、使用aesKey对plainText进行加密得到密文encryptedText(AES加解密使用:AES/CBC/PKCS5Padding)
3、将生成的aesKey用BASE64进行加密获得base64AesKey
4、使用RSA公钥rsaPublicKey对base64AesKey进行RSA加密后再用BASE64进行加密获得密文encryptedAesKey
5、获得encryptedAesKey和encryptedText
签名:
使用密文encryptedText、时间戳timestamp、appKey、appSecret、uri进行签名,下面是签名过程:
1、将参数进行重组:appSecret+”app_key”+appKey+”param”+encryptedText+”timestamp”+timestamp+”v2.0″+”uri”+uri+appSecret获得signParam
2、使用HmacSHA256算法已appSecret为key对signParam计算得到签名signature
请求:
使用HTTP/HTTPS协议,使用POST方式,请求header添加alg(固定填“HmacSHA256”)、signature(加密时生成的signature)、aesKey(加密时生成的encryptedAesKey)、version(固定填“2.0”)、appKey(appKey)、timestamp(签名时生成的时间戳timestamp),MediaType使用”application/json; charset=utf-8″
验签:
和签名保持一致,参数从http返回的response中获取,其中encryptedText在response的body中,timestamp和aesKey在header中,获取到参数后按照签名中的方式计算得到signature与response返回header里的signature一致为验签成功,不一致为验签失败
解密:
对密文encryptedText进行解密,使用己方RSA私钥rsaPrivateKey和response返回header里的aesKey,下面是解密过程:
1、使用rsaPrivateKey对aesKey进行RSA解密获得base64AesKey
2、对base64AesKey使用BASE64解密,获得明文aesKey
3、使用明文aesKey对密文encryptedText进行AES解密得到明文plainText(AES加解密使用:AES/CBC/PKCS5Padding)

其中参数结果iv_3000,如图

RSA加解密成功例子 - 第1张  | 优通SAP

1.

创建*.PSE文件证书

这步得找basis,SAP服务器上生成一对我方的公私钥,

大概的操作如下,具体的可找BASIS操作生成。

2.加密及签名

在发送文件时,使用对方公钥进行加密,并签名,逻辑可以开头说明,具体项目上的使用依据项目需求修改。

3.解密及验签,

在收到对方发来报文时,需要使用自己的私钥解密对方报文,并做验签名处理。

最后编辑:
作者:yangsen
本站为个人博客网站,全由我个人维护,我从事SAP开发13年,其它ERP开发7年,基本都是零售行业。本站记录工作学习的过程, 有SAP相关询问专、兼职工作可随时联系我。 有网站相关的问题可直接在文章下方留言,或者联系我。 邮件:yan252@163.com给我。 QQ:415402519

留下一个回复

你的email不会被公开。