Выпуск LUA HMAC Generation в версии 5.1
У меня проблема при создании HMAC в версии LUA 5.1, и тот же код работает в node.js
Код Node.js:
crypto.createHmac(
CONSTANTS.HMAC_ALORITHM_SHA,
Buffer.from(
secretAccessKey,
CONSTANTS.BASE64_ENCODING
)
).update(
Buffer.from(
stringToSign,
CONSTANTS.UTF8
)
).digest(
CONSTANTS.BASE64_ENCODING
);
Я хотел написать в том же коде LUa 5.1.
1 ответ
local sha2 = require("sha2")
local your_hmac_as_hex_string = sha2.hmac(
sha2.sha1, -- SHA-1
"secretAccessKey as binary string",
"stringToSign"
)
local your_hmac_as_binary_string = sha2.hex2bin(your_hmac_as_hex_string)
Библиотека здесь
ОБНОВИТЬ:
Если ваш ключ хранится как base64, вам необходимо преобразовать его из base64 в двоичный:
local binary_key = sha2.base642bin(base64_key)
-- invoke sha2.hmac() here
И если вы хотите преобразовать результат в base64:
local your_hmac_as_base64 = sha2.bin2base64(your_hmac_as_binary_string)