我花时间阅读了Nginx的HTTPLuaModule,发现开发人员可以使用键和字符串实现SHA256签署Amazon服务的一些很好的方式。作为一个初级开发人员,我是一个Lua,我想使用HTTPLuaModule来生成Facebook appsecret_proof令牌。目前,我发现用于Lua的LuaCrypto模块可以通过SHA256生成HMAC,但它与Facebook令牌所需的实现不完全匹配:
digest = crypto.hmac.digest('sha256', user-access-token, app-secret, true) ## what next to convert digest into hexadecimal string?
与上面的亚马逊示例不同,令牌不需要是Base64编码,而是需要使用十六进制数字(因此是十六进制数字!)转换成双长字符串。
在Python中,我可以通过以下方式获得令牌:
import hashlib import hmac token = hmac.new(app-secret, user-access-token, hashlib.sha256).hexadecimal()
有什么想法?有更好的模块可以将摘要转换成十六进制字符串吗?
发布于 2014-07-02 22:35:33
应该很简单,如:
local secretProof = digest:final()来源:http://mkottman.github.io/luacrypto/manual.html#reference
https://stackoverflow.com/questions/24541366
复制相似问题