我在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中实现它?
非常感谢你的时间,
答案 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我认为有内置函数。