将Node.js HMAC转换为C ++

时间:2017-02-09 22:24:23

标签: c++ node.js hmac crypto++

我一直致力于一个项目,作为其中的一部分,我需要转换Node.js代码

var hash = crypto.createHmac('sha512', key).update(text).digest('hex');

到C ++。我决定使用Crypto ++,导致以下代码:

//Creating the key from an integer instead of a string or byte array
char bytes[sizeof key];
std::copy(static_cast<const char*>(static_cast<const void*>(&key)),
    static_cast<const char*>(static_cast<const void*>(&key)) + sizeof key,
    bytes);
SecByteBlock key(bytes, sizeof(bytes));

//Create HMAC using server seed as key and client seed as message
HMAC< SHA512 > hmac(key, key.size());
string plain = "HMAC Test";
string mac, encoded;

StringSource ss2(text, true, new HashFilter(hmac, new StringSink(mac)) /* HashFilter*/);

这两个代码块是否相同?我对JS更熟悉,所以我不确定C ++代码在功能上是否完全正确。

0 个答案:

没有答案