Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua HMAC SHA256 base64编码_Lua_Base64_Sha256_Hmac - Fatal编程技术网

Lua HMAC SHA256 base64编码

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

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

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创建相同的值。当你有时间的时候,如果你看着它,你可以救我的命: