我一直在关注显示如何使用 Windows CryptoAPI 对数据进行哈希处理的 msdn 示例。该示例可以在这里找到:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa382380%28v=vs.85%29.aspx
我已修改代码以使用 SHA1 算法。
我不明白以十六进制显示哈希(如下所示)的代码是如何工作的,更具体地说,我不明白 >> 4 运算符和 & 0xf 运算符的作用。
if (CryptGetHashParam(hHash, HP_HASHVAL, rgbHash, &cbHash, 0)){
printf("MD5 hash of file %s is: ", filename);
for (DWORD i = 0; i < cbHash; i++)
{
printf("%c%c", rgbDigits[rgbHash[i] >> 4],
rgbDigits[rgbHash[i] & 0xf]);
}
printf("\n");
}
如果有人能为我解释一下,我将不胜感激,在此先感谢:)