将HMAC函数从Java转换为JavaScript

背风处

我打算使用此Java函数作为参考在NodeJS中实现HMAC函数:

private static String printMacAsBase64(byte[] macKey, String counter) throws Exception {
    // import AES 128 MAC_KEY
    SecretKeySpec signingKey = new SecretKeySpec(macKey, "AES");

    // create new HMAC object with SHA-256 as the hashing algorithm
    Mac mac = Mac.getInstance("HmacSHA256");
    mac.init(signingKey);

    // integer -> string -> bytes -> encrypted bytes
    byte[] counterMac = mac.doFinal(counter.getBytes("UTF-8"));

    // base 64 encoded string
    return DatatypeConverter.printBase64Binary(counterMac);
}

由此得到Qze5cHfTOjNqwmSSEOd9nEISOobheV833AncGJLin9Y =的HMAC =

通过节点中的HMAC算法传递相同的计数器和密钥时,我得到的HMAC值不同。这是我生成hmac的代码。

var decryptedMacKey = 'VJ/V173QE+4CrVvMQ2JqFg==';
var counter = 1;

var hash = crypto
    .createHmac('SHA256',decryptedMacKey)
    .update(new Buffer(counter.toString(),'utf8'),'utf8')
    .digest('base64');

运行此命令时,我得到的MAC为nW5MKXhnGmgpYwV0qmQtkNBDrCbqQWQSkk02fiQBsGU =

我在javascript中找不到与SecretKeySpec类等效的任何东西,因此可能是缺少的链接。

通过选择算法Sha-256并输入解密的Mac密钥和计数器,我还可以使用此https://quickhash.com/生成与程序相同的值

Artjom B.

您忘记了decryptedMacKey从Base 64表示形式解码

var hash = crypto.createHmac('SHA256', new Buffer(decryptedMacKey, 'base64'))
    .update(new Buffer(counter.toString(),'utf8'),'utf8')
    .digest('base64');

给出:

'Qze5cHfTOjNqwmSSEOd9nEISOobheV833AncGJLin9Y ='

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将PHP hmac签名转换为Java

来自分类Dev

将minimax函数从Java转换为JavaScript

来自分类Dev

将JavaScript函数转换为

来自分类Dev

javascript,将函数转换为函数

来自分类Dev

将Javascript函数转换为AngularJS函数

来自分类Dev

javascript,将函数转换为函数

来自分类Dev

Javascript将函数转换为箭头函数

来自分类Dev

将jQuery函数转换为JavaScript GSAP

来自分类Dev

将coffeescript函数转换为javascript

来自分类Dev

将Javascript函数转换为Python

来自分类Dev

将jQuery函数转换为纯JavaScript

来自分类Dev

将javascript函数转换为变量

来自分类Dev

将 jquery 转换为普通的 javascript 函数

来自分类Dev

如何将iOS函数转换为Ruby。生成hmac-sha1哈希?

来自分类Dev

Javascript将普通函数转换为构造函数

来自分类Dev

将Javascript Map函数转换为Swift 2 Map函数

来自分类Dev

将javascript箭头函数转换为普通函数

来自分类Dev

将Java列表转换为Javascript数组

来自分类Dev

将RegEx从JavaScript转换为Java

来自分类Dev

将javascript数组转换为Java对象

来自分类Dev

将Java列表转换为Javascript数组

来自分类Dev

将Java Lambda转换为Java 1.8之前的函数

来自分类Dev

如何将JavaScript函数转换为JSON

来自分类Dev

Javascript函数仅将数字转换为X位数

来自分类Dev

Javascript函数将hsv转换为十六进制

来自分类Dev

将JavaScript函数转换为Dart:安全字

来自分类Dev

将d3.js JavaScript函数转换为CoffeeScript

来自分类Dev

如何将JavaScript构造函数转换为Amber Smalltalk?

来自分类Dev

将javascript函数转换为php(自定义排序)