Muz*_*hua 9 erlang cryptography sha sha256 hmac
我正在尝试与Pusher.com创建和维护的第三方实时Web消息系统进行交互.现在,除非我生成HMAC SHA256 hex digest
我的数据,否则我无法通过API发送任何内容.编写的示例源代码ruby
可能试图说明这一点:
# Dependencies # gem install ruby-hmac # require 'rubygems' require 'hmac-sha2' secret = '7ad3773142a6692b25b8' string_to_sign = "POST\n/apps/3/channels/test_channel/events\nauth_key=278d425bdf160c739803&auth_timestamp=1272044395&auth_version=1.0&body_md5=7b3d404f5cde4a0b9b8fb4789a0098cb&name=foo" hmac = HMAC::SHA256.hexdigest(secret, string_to_sign) puts hmac # >> 309fc4be20f04e53e011b00744642d3fe66c2c7c5686f35ed6cd2af6f202e445
我检查了erlang加密库,我甚至无法生成SHA256 hex digest
"直接"
我如何在Erlang中完成这一切?帮助....
*更新*
我在这里找到了解决方案:在erlang中使用sha256加密,他们把我带到了erlsha2.但尽管如此,我如何生成HMAC
一个的SHA256 hexdigest
该模块的输出?
Ste*_*ski 11
使用erlsha2,使用以下代码来获取Ruby代码的等价物:
1> hmac:hexlify(hmac:hmac256(<<"7ad3773142a6692b25b8">>, <<"POST\n/apps/3/channels/test_channel/events\nauth_key=278d425bdf160c739803&auth_timestamp=1272044395&auth_version=1.0&body_md5=7b3d404f5cde4a0b9b8fb4789a0098cb&name=foo">>)).
"309FC4BE20F04E53E011B00744642D3FE66C2C7C5686F35ED6CD2AF6F202E445"
Run Code Online (Sandbox Code Playgroud)
我自己偶然发现了这个问题,最后仅使用加密技术就成功了,所以我想分享一下。对于您的使用,我认为您会想要:
:crypto.hmac(:sha256, secret, string_to_sign) |> Base.encode16
hmac 部分应处理摘要 + hmac,然后通过管道编码 16 应提供十六进制部分。我想你可能不久前就离开了,但由于我也遇到了同样的问题,并且想尝试在 stdlib 中解决它,我想我会分享。
归档时间: |
|
查看次数: |
3921 次 |
最近记录: |