Несколько шифровщиков Hmac выводят другой результат из библиотеки Google Closure.
Я пробовал несколько шифровщиков Hmac, и они выдают один и тот же результат. Однако при использовании библиотеки Google Closure, как в NodeJS, так и в ClojureScript, он выдает совершенно другой результат.
require("google-closure-library");
function bytesToHex(b) {
var hexchars = '0123456789abcdef';
var hexrep = new Array(b.length * 2);
for (var i = 0; i < b.length; ++i) {
hexrep[i * 2] = hexchars.charAt((b[i] >> 4) & 15);
hexrep[i * 2 + 1] = hexchars.charAt(b[i] & 15);
}
return hexrep.join('');
}
goog.require('goog.crypt.Hmac');
goog.require('goog.crypt.Sha256');
function getHmac(key, message) {
var hasher = new goog.crypt.Sha256();
var hmacer = new goog.crypt.Hmac(hasher, key, 64);
return bytesToHex(hmacer.getHmac(message));
}
console.log(getHmac('ac13', 'msg'));
sha256 Hmac ключа 'ac13' и сообщения 'msg' оказалось a4a21ba4ddef094c847d4a75ef9a026d329ee12563f3ab00e63261abae55c18d в нескольких библиотеках шифрования.