Rhapsody引用外部类实现HMACSHA256加密
本文外部类使用java开发实现,最后打包jar包,在rhapsody中引用即可。
注意:为了保证rhapsody正常引用,开发使用的java版本需小于等于rhapsody的java版本。
1 java创建HMACSHA256加密类
创建一个普通的java项目,并创建对应类。
package com.tool;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Hex;
public class HMACSHA256 {
public String doHMACSHA256(String requestparams) {
try {
String str = requestparams;
String appSecret = "your-app-secret";
// 生成签名
final Mac HmacSHA256 = Mac.getInstance("HmacSHA256");
SecretKeySpec secretKey = new SecretKeySpec(appSecret.getBytes("UTF-8"), "HmacSHA256");
HmacSHA256.init(secretKey);
String signature = Hex.encodeHexString(HmacSHA256.doFinal(str.getBytes("UTF-8")));
System.out.println("HMACSHA256加密后的值: " + signature);
return signature;
} catch (Exception e) {
System.out.println(e);
return e.toString();
}
}
public static void main(String[] args) {
String reqparam = "abcd";
System.out.println("原始值:"+reqparam);
new HMACSHA256().doHMACSHA256(reqparam);
}
}
测试运行结果:
将指定类打包为jar包操作配置
新增jar打包项目,并添加依赖指定的需要打包的类
效果:
打包jar包:
最总在配置的输出目录中可找到对应的jar包
2 在rhapsody中使用js引用案例
将对应jar包加入依赖
js中引用对应的类,引用时需要使用类的全路径,否则会报找不到对应对象
var next = output.append(input[0]);
var J_HMACSHA256 = new com.tool.HMACSHA256();//需使用类的全路径
log.info(J_HMACSHA256.doHMACSHA256("abc"));
测试js调用情况: