Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将代码从JS转换为CPP_Javascript_C++_Json_Hmac - Fatal编程技术网

Javascript 将代码从JS转换为CPP

Javascript 将代码从JS转换为CPP,javascript,c++,json,hmac,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', x

我在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中实现它


非常感谢您的时间,

您正在谈论NodeJ,在本例中,缓冲区类的实例类似于整数数组,但对应于固定大小的原始内存分配。缓冲区的大小是在创建时确定的,无法调整大小。然后将其转换为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,我认为有内置函数。p>


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

请澄清您的具体问题或添加其他详细信息,以突出显示您需要的内容。对于转储问题,我已解决了。谢谢。谢谢@MiGu3x,谢谢你的帮助,我完成了任务。