我一直致力于一个项目,作为其中的一部分,我需要转换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 ++代码在功能上是否完全正确。