将代码从JS转换为CPP

时间:2018-03-09 16:12:57

标签: javascript c++ json hmac

我在CPP方面有一定的经验,在JS中也是全新的。有一个将代码从JS转换为CPP的任务,我尝试了一些但不清楚我在做什么;以后我的js代码。

body: json object

xyz: string (suck as: ALgalgw7agw)

const payload = new Buffer(JSON.stringify(body))
    .toString('base64')

const signature = crypto
  .createHmac('sha384', xyz)
  .update(payload)
  .digest('hex')

1)此代码段的含义是什么?

2)我如何在cpp中实现它?

非常感谢你的时间,

1 个答案:

答案 0 :(得分:0)

您正在谈论NodeJS,在这种情况下,Buffer类的实例类似于整数数组,但对应于固定大小的原始内存分配。 Buffer的大小在创建时建立,无法调整大小。之后,您将其转换为Base64字符串。

const buf = Buffer.from('hello world', 'ascii');
// Prints: aGVsbG8gd29ybGQ=
console.log(buf.toString('base64'));

之后,您将使用“xyz”变量创建有效负载的哈希值,该变量是解密有效负载的关键,然后将其消化为十六进制。所以最后:

signature = /* hex sha384-with-key encrypted payload */

如果你想将这个JS代码翻译成C ++,你需要使用某种加密库(比如OpenSSL),而对于Buffer我认为有内置函数。

我建议您阅读thisthis以了解有关NodeJS上的加密和缓冲类/函数的更多信息