2017-10-26 21 views
0

をコードしていました。HMAC SHA256 BASE64は、Azureのための署名を作成Node.jsのコードがあり

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

どのようにLUAを使用して同じ署名を作成できますか。私はそれがHMAC、SHA256およびbase64でプリミティブを持っていますが、私はLUA

として、このコードを実装することができますかどうかはわかりません見ることができます

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

(私は、このためのLua-ロックボックスを使用する必要があると思います)

手掛かりはありますか?

答えて

1

私は、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) 
+0

多くの感謝を。私はあなたに結果を知らせるように努力します。 – MareCieco

+0

私のjavascriptのコードキーはvar key = new Buffer( "ABC"、 "base64")のように計算されます。新しいバッファーって何? LUAで同じことをするにはどうすればいいですか?前もって感謝します。 – MareCieco

+0

あなたの鍵「ABC」がBase64としてエンコードされていると思います。 Luaではこれを行うことができます: 'local key = base64.toArray(" ABC ")'。 – catwell

関連する問題