jjzjj

java - Facebook 实时更新 : Validating X-Hub-Signature SHA1 signature in Java

coder 2024-03-03 原文

当 Facebook 发送实时更新时,它们会在 HTTP header 中包含一个 X-Hub-Signature。根据their documentation ,他们使用 SHA1 和应用程序 secret 作为 key 。

基于 similar question对于 C#,我尝试像这样验证签名('body' 是 facebook 在请求正文中发送的消息):

String passedSignature = req.getHeader("X-Hub-Signature").substring(5);
Mac hmac = Mac.getInstance("HmacSHA1");
hmac.init(new SecretKeySpec(FACEBOOK_SECRET.getBytes(Charset.forName("UTF-8")), "HmacSHA1"));
String calculatedSignature = Hex.encodeHexString(hmac.doFinal(body.getBytes(Charset.forName("UTF-8"))));
logger.debug("Calculated sigSHA1: " + calculatedSignature + " passedSignature: " + passedSignature);

但是 passedSignature 总是不同于 calculatedSignature。

谁能帮忙解决问题?

最佳答案

原来密码是正确的,我用错了 key :-/

无论如何,我希望这可以帮助其他人。

关于java - Facebook 实时更新 : Validating X-Hub-Signature SHA1 signature in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221253/

有关java - Facebook 实时更新 : Validating X-Hub-Signature SHA1 signature in Java的更多相关文章

随机推荐