0

在我的应用程序中,我将文件划分为多个部分并计算每个部分的哈希值写入 txt 文件。在我想合并这些部分之后,我只想使用这些哈希值来到达这些部分,这可能吗?所以这是我该怎么做?

4

2 回答 2

0

如果散列很好,一般来说是不可能的;哈希函数被设计为一种方式。我想您将不得不迭代零件所在的目录并重新计算每个零件的哈希值。

于 2013-09-18T08:13:57.363 回答
0

一切都取决于您使用的散列函数。如果这是不可逆的 sha1、md5sum 或 antyhing,那么您需要创建一个单独的“映射”文件,该文件将包含哈希和相应的数据。现在,有了这样的映射,您可以读取包含哈希的文件,并将这些哈希替换为从映射文件中读取的适当数据。

散列和除法函数:

while ( chunk = get_next_chunk())
{
  hash = hashing_function( chunk ) ;
  store( hash ) ;
  if ( !map.find( hash ))
     map[ hash ] = chunk ;
}
map.dump( mapfile ) ;

恢复:

map.load( mapfile ) ;
while ( hash = get_next_hash())
{
   write( map[ hash ]) ;
}
于 2013-09-18T08:16:16.840 回答