繁体   English   中英

在javascript中的HMAC SHA256十六进制摘要

[英]HMAC SHA256 hex digest in javascript

我正在尝试编写一个javascript库来将事件推送给Pusher。

在我正在使用的环境中我不能使用nodejs,所以没有require('crypto')......或者至少我不知道在节点外使用它的方法。

我在这里关注示例指南: http//pusher.com/docs/rest_api ; 我陷入了它应该生成HMAC SHA256十六进制摘要的部分。

我正在使用此库http://code.google.com/p/crypto-js/#HMAC

所以,按照我写的Pusher的说明

CryptoJS.HmacSHA256(
  'POST\n/apps/3/channels/project-3/events\nauth_key=278d425bdf160c739803&auth_timestamp=1272044395&auth_version=1.0&body_md5=7b3d404f5cde4a0b9b8fb4789a0098cb&name=foo',
  '7ad3773142a6692b25b8'
);

但那给了我20b132baa2aaf44ea1fab814f0788aaa44eed23a2d252c72e4dc2aaea0d6ac24而不是b3152b2bb5a5b0bae66435a498797aa763e9b74f86cc97c9175424f8308b2f80

困扰我的是我没有做“十六进制摘要”部分,所以也许这就是我所缺少的,但我找不到合适的lib来在javascript中执行此操作。 你发现我做的任何错误吗? 你有图书馆建议吗?

在此先感谢您的帮助。

我正在努力做同样的事情。 Pusher的文档应该更清楚这个问题。 事实证明,这不是加密方法。 这是您列出参数的顺序。 您的邮件正文必须完全按照以下格式进行格式化:

{“data”:“{\\”message \\“:\\”hello world \\“}”,“name”:“my_event”,“channel”:“test_channel”}

数据必须是第一个,然后是消息,然后是名称,最后是通道名称。

然后,当您创建身份验证签名时,您必须列出您的参数:

POST \\ N /应用/ 3 /事件\\ nauth_key = 278d425bdf160c739803&auth_timestamp = 1353088179&auth_version = 1.0&body_md5 = ec365a775a4cd0599faeb73354201b6f

首先是auth键,然后是时间戳,然后是auth版本,最后是body md5。

一旦我遵循这个确切的模式,我得到了它的工作。 希望这有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM