飞书的机器人的签名校验比较麻烦,网上找了一圈没找到java版本的获取签名的方法,分享一下,代码如下
public String getSign(String timestamp){
//注意timestamp必须是10位的,秒,不能是毫秒
// String timestamp=String.valueOf(System.currentTimeMillis()).substring(0,10);
//这里换成你的secret
String secret="xxxxxxxxxxxxxx";
String content=timestamp+"\n"+secret;
byte[] message1={};
try {
Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
SecretKeySpec secret_key = new SecretKeySpec(content.getBytes(), "HmacSHA256");
sha256_HMAC.init(secret_key);
String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(message1));
System.out.println(hash);
return hash;
}catch (Exception e){
UnifyLogger.info(LogUtil.getLogId(),"加密失败");
}
return null;
}