多次调用CryptHashData

时间:2012-02-06 18:32:30

标签: winapi

我认为这是在创建一个md5哈希,但是对于正在被哈希的内容感到困惑。

char val1[4] = {...};
DWORD val2 = ...;

CryptCreateHash(hCryptProv, CALG_MD5, 0, 0, &hHash)  // Creates hash object
CryptHashData(hHash, reinterpret_cast<const PBYTE>(val1), sizeof(val1), 0) // perform hash #1
CryptHashData(hHash, reinterpret_cast<const PBYTE>(val2), sizeof(val2), 0) // perform hash #2

散列#1如何与散列#2结合?

是否正在执行md5(md5(val1)+ val2)?还是md5(val1 + val2)?或者我根本不考虑的事情?

1 个答案:

答案 0 :(得分:4)

CryptHashData将您的数据添加到哈希对象。如果稍后调用CryptGetHashParam,您将获得val1 + val2的哈希值。