HMAC SHA256 base64编码

有一个Node.JS代码可以为Azure创建签名。

var signature = crypto.createHmac("sha256", key).update(body).digest("base64");

如何使用LUA创建相同的签名。 (我认为我需要使用Lua-Lockbox来实现这一点)

https://github.com/somesocks/lua-lockbox

我可以看到它具有Hmac,sha256和base64原语,但我不确定如何将此代码实现为LUA

有什么线索吗?

点赞
用户204011
用户204011

我不熟悉 lua-lockbox,但是看起来这个应该是可行的:

local stream = require "lockbox.util.stream"
local hmac = require "lockbox.mac.hmac"
local sha256 = require "lockbox.digest.sha2_256"
local base64 = require "lockbox.util.base64"

local body = stream.fromString("thisisthebody")
local key = {("thekey"):byte(1,-1)}

local digest = hmac()
    .setBlockSize(64)
    .setDigest(sha256)
    .setKey(key)
    .init()
    .update(body)
    .finish()
    .asBytes()

local base64_digest = base64.fromArray(digest)

print(base64_digest)
2017-10-27 09:55:09