飞书群消息机器人签名校验Java实现

2020/12/24 WebHook 飞书

参考链接:https://www.feishu.cn/hc/zh-cn/articles/360024984973-%E5%9C%A8%E7%BE%A4%E8%81%8A%E4%B8%AD%E4%BD%BF%E7%94%A8%E6%9C%BA%E5%99%A8%E4%BA%BA

Go语言实现
func GenSign(secret string, timestamp int64) (string, error) {
   //timestamp + key 做sha256, 再进行base64 encode
   stringToSign := fmt.Sprintf("%v", timestamp) + "\n" + secret

   var data []byte
   h := hmac.New(sha256.New, []byte(stringToSign))
   _, err := h.Write(data)
   if err != nil {
      return "", err
   }

   signature := base64.StdEncoding.EncodeToString(h.Sum(nil))
   return signature, nil
} 
Java实现
public static String createSign(String appSecret, Long timestamp) throws Exception {
        String stringToSign = timestamp + "\n" + appSecret;
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(new SecretKeySpec(stringToSign.getBytes(), "HmacSHA256"));
        byte[] signData = mac.doFinal();

        return Base64.encodeBase64String(signData);
    }

Search

    Table of Contents