飞书的机器人的签名校验比较麻烦,网上找了一圈没找到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; }