为文件块生成SHA1哈希

时间:2012-06-27 03:32:22

标签: c++ sha1

我能够为整个文件生成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个哈希值。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

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);
//...