如何使用哈希来访问文件?

时间:2013-09-18 08:10:33

标签: file hash merge divide

在我的应用程序中,我将文件分成几部分,并计算写入txt文件的每个部分的哈希值。在我想在这一点上合并这些部分之后,我只想使用这些哈希值来获取部​​分,是否可能?所以我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果哈希是好的,一般情况下是不可能的;哈希函数被设计为一种方式。 我想你将不得不迭代部件所在的目录,并重新计算每个部件的哈希值。

答案 1 :(得分:0)

全部取决于您使用的散列函数。如果这是sha1,md5sum或不可逆的antyhing,则需要创建一个单独的“map”文件,该文件将包含散列和相应的数据。 现在,拥有这样的地图,您可以读取包含哈希值的文件,并将这些哈希值替换为从地图文件中读取的相应数据。

散列的和分割功能:

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 ]) ;
}