Lua HMAC SHA256 base64编码
有一个Node.JS代码可以为Azure创建签名Lua HMAC SHA256 base64编码,lua,base64,sha256,hmac,Lua,Base64,Sha256,Hmac,有一个Node.JS代码可以为Azure创建签名 var signature = crypto.createHmac("sha256", key).update(body).digest("base64"); 如何使用LUA创建相同的签名。我想我需要用一个锁箱 我可以看到它有Hmac、sha256和base64原语,但我不确定如何将这段代码实现为LUA 有什么线索吗?我不知道lua的锁箱,但看起来这样应该行得通: local stream = require "lockbox.util.s
var signature = crypto.createHmac("sha256", key).update(body).digest("base64");
如何使用LUA创建相同的签名。我想我需要用一个锁箱
我可以看到它有Hmac、sha256和base64原语,但我不确定如何将这段代码实现为LUA
有什么线索吗?我不知道lua的锁箱,但看起来这样应该行得通:
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)
非常感谢你的回答。我将尝试让您知道结果;什么是新的缓冲区??我怎么能在LUA做同样的事?提前谢谢。我想这意味着你的密钥ABC编码为Base64。在Lua中,我认为您可以这样做:localkey=base64.toArrayABC。不幸的是,它不起作用。我正在尝试创建下面的关键点。有NodeJ和.net代码,但我无法使用lua创建相同的值。当你有时间的时候,如果你看着它,你可以救我的命: