package com.stylefeng.guns.modular.system.util.zhenglian;
|
|
import com.stylefeng.guns.modular.system.util.SpringContextsUtil;
|
import com.stylefeng.guns.modular.system.util.zhenglian.model.MessageBody;
|
import com.zlpay.assist.encrypt.sm4.SM4Util;
|
import com.zlpay.assist.sign.sm2.SM2Util;
|
import lombok.extern.slf4j.Slf4j;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2025/7/28 14:25
|
*/
|
@Slf4j
|
public class CallbackUtil {
|
|
private static ZhengLianConfig zhengLianConfig = SpringContextsUtil.getBean(ZhengLianConfig.class).getZhengLianConfig();
|
|
|
public static String callback(MessageBody messageBody) {
|
try {
|
String data = messageBody.getData();
|
String sign = messageBody.getSign();
|
String secret = messageBody.getSecret();
|
//加密对称加密的秘钥
|
// 获取公钥
|
String publicKey = ZhengLianUtil.getPublicKey();
|
// 验签
|
boolean checkResult = SM2Util.verify(publicKey, zhengLianConfig.getEncrpNo(), sign, data);
|
System.out.println("验签结果:" + checkResult);
|
// 获取私钥
|
String privateKey = ZhengLianUtil.getPrivateKey();
|
// 解密对称秘钥
|
String k = SM2Util.decrypt(privateKey, secret);
|
System.out.println("对称秘钥:" + k);
|
// 解密业务报文
|
String backData = SM4Util.sm4EcbDecrypt(k, data);
|
System.out.println("业务报文:" + backData);
|
return backData;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
|
|
|
}
|