HMAC SHA256 base64编码

时间:2017-10-26 04:55:07

标签: lua base64 sha256 hmac

有一个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

有任何线索吗?

1 个答案:

答案 0 :(得分:1)

我不知道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)