我的普通C应用程序收集数据块并将它们连接到一个数GB的文件中。传入数据块的大小在1个字节和256KB之间是随机的,这超出了我的控制范围。 我想在收集传入块时计算sha256哈希,以使其与大型结果文件的sha256sum哈希匹配。我的起点是https://www.openssl.org/docs/man1.1.0/man3/EVP_DigestUpdate.html上的openssl示例。每当有新的块到达时,我都会在下面调用我的更新例程。
void AddToReadResults(uint32_t bytes)
{
if(bytes) EVP_DigestUpdate(RdrMdContext, GetHeadBuffer(), bytes);
TotalBytes += bytes;
}
给出与输入相同的数据块集,我得到一个一致的可重复哈希。但这与大型串联文件的sha256sum不匹配。