使用私钥在CPI中签名消息

2020-08-20 18:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我需要使用私钥加密消息,然后将其编码为base64。我能够使用该函数进行编码,但不能进行加密。 你能帮忙吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家,

我需要使用私钥加密消息,然后将其编码为base64。我能够使用该函数进行编码,但不能进行加密。 你能帮忙吗?

付费偷看设置
发送
2条回答
SAP小黑
1楼 · 2020-08-20 19:15.采纳回答

实现了这一点。 Signer函数有效,但要注意的是输出将发送到标头。 访问标头以获取带符号的值。

蓋茨
2楼-- · 2020-08-20 19:12

我已经使用了简单签名器功能,但未提供任何输出。 输入和输出相同。

我也尝试了下面的Groovy代码,但它给出了错误

错误-

java.lang.NoSuchMethodException:无方法签名:org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.encryptRSAData()适用于参数类型:(java.lang.String,iaia.security.rsa.RSAPrivateKey)

代码

导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 导入com.sap.it.api.ITApiFactory;
 导入com.sap.it.api.keystore.KeystoreService;
 导入java.security.cert.Certificate;
 导入java.security.KeyPair;
 导入java.security.PrivateKey;
 导入javax.crypto.Cipher;
 导入javax.crypto.SecretKey;
 导入javax.crypto.spec.SecretKeySpec;
 导入javax.crypto.spec.IvParameterSpec;
 导入org.apache.commons.codec.binary.Base64;
 导入groovy.xml.Namespace;
 导入groovy.util.XmlParser;
 导入groovy.xml.XmlUtil;

 def消息processData(消息消息){
     KeystoreService服务= ITApiFactory.getApi(KeystoreService.class,null);
     证书cert = service.getCertificate(" alias");
     KeyPair密钥对= service.getKeyPair(" alias");
     PrivateKey privateKey = keypair.getPrivate();

    //身体
     def body = message.getBody(java.lang.String)as String;
     字符串encryptionXMLData = cryptoRSAData(body,privateKey);
     返回encryptedXMLData;
 } 

一周热门 更多>