Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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
Winapi 多次调用CryptHashData_Winapi - Fatal编程技术网

Winapi 多次调用CryptHashData

Winapi 多次调用CryptHashData,winapi,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

我推测这是在创建一个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
charval1[4]={…};
DWORD val2=。。。;
CryptCreateHash(hCryptProv、CALG_MD5、0、0和hHash)//创建哈希对象
CryptHashData(hHash,reinterpret_cast(val1),sizeof(val1),0)//执行hash#1
CryptHashData(hHash,reinterpret_cast(val2),sizeof(val2),0)//执行hash#2
散列1和散列2是如何结合的


它是否执行md5(md5(val1)+val2)?还是md5(val1+val2)?或者我根本没有考虑的东西?

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

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

因此,例如,如果val2为0,那么我应该能够删除第二个哈希调用,而不会对最终哈希值产生任何影响?这似乎不是问题所在case@LemonBeagle事实并非如此,因为如果将值为0的DWORD添加到哈希对象,则数据的长度会发生更改。值为零并不意味着没有数据添加到哈希对象。这意味着将值为0的sizeof(DWORD)数据添加到哈希对象中。Aha。。我只是简单地添加,而不是连接。。。谢谢所以当我得到15分的时候muchI会投票支持你。。。我希望我现在可以,这真的很有帮助,谢谢。例如,如果val2是0,那么我应该能够删除第二个哈希调用,而不影响最终的哈希值?这似乎不是问题所在case@LemonBeagle事实并非如此,因为如果将值为0的DWORD添加到哈希对象,则数据的长度会发生更改。值为零并不意味着没有数据添加到哈希对象。这意味着将值为0的sizeof(DWORD)数据添加到哈希对象中。Aha。。我只是简单地添加,而不是连接。。。谢谢所以当我得到15分的时候muchI会投票支持你。。。我希望我现在可以,这真的很有帮助,谢谢