【发布时间】:2014-07-03 08:11:54
【问题描述】:
我一直在阅读有关 Nginx 的 HTTPLuaModule 的信息,并发现开发人员可以通过一些很棒的方式使用键和字符串来SHA256 sign Amazon Web Services。作为 Lua 新手的初级开发人员,我想使用 HTTPLuaModule 生成 Facebook appsecret_proof 令牌。目前我发现 Lua 有 LuaCrypto module 通过 SHA256 生成 HMAC,但它与 Facebook 令牌所需的实现不完全匹配:
digest = crypto.hmac.digest('sha256', user-access-token, app-secret, true) ## what next to convert digest into hexadecimal string?
与上面的亚马逊示例不同,令牌不需要进行 Base64 编码,而是需要将 HMAC 转换为仅使用十六进制数字的双倍长度字符串(因此是十六进制!)。
在 Python 中,我可以通过以下方式获取令牌:
import hashlib
import hmac
token = hmac.new(app-secret, user-access-token, hashlib.sha256).hexadecimal()
想法?有没有更好的模块可以将摘要转换为十六进制字符串?
【问题讨论】:
标签: facebook-graph-api lua hex sha sha256