为文件区块生成 SHA1 哈希

Generating SHA1 hash for chunks of a file

本文关键字:SHA1 哈希 文件区      更新时间:2023-10-16

我能够为整个文件生成SHA-1哈希。我通过以下C++代码使用 Open SSL 执行此操作。

file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_name, 0); 
SHA1((unsigned char*) file_buffer, file_size, hash_value);

但是我想为文件的较小块创建单独的哈希值。

考虑

File Size  = 10KB and 
Chunk Size = 2KB

在这种情况下,我想为文件的每个块生成 5 个哈希值。我该怎么做?

file_buffer = mmap(0, file_size, PROT_READ, MAP_SHARED, file_name, 0); 
SHA1((unsigned char*) file_buffer, 2048, hash_value_1);
SHA1((unsigned char*) (file_buffer+2048), 2048, hash_value_2);
//...