[Digikam-users] Images.uniquehash calculation

Remco Viƫtor remco.vietor at wanadoo.fr
Wed Jun 19 01:23:51 BST 2013


On Tuesday 18 June 2013 21:00:44 Marcel Wiesweg wrote:
> 
> > For the second data block (the last 100 kB), as there is a seek just
> > before, that could make a difference if the file is <100kB:
> > - in C++, the file's probably in an error state, so no data will be 
read, so
> > the second data block will not be fed to the hash routine.
> > - in Python, the data block /is/ fed, but will probably contain rubbish 
if
> > the file is <100kB...
> 
> Interesting observation. Anyway, if this was a bug, we wont change it to 
keep 
> the hash stable.

The C++ version seems to me to do the correct thing, in that it doesn't 
feed data to the hash generator if the file doesn't provide the data...

What I ment to show was that the two routines are /not/ identical, in that 
they can feed different data to the hash generator, and in that case, 
/should/ end up with a different hash value.

Remco

P.S. There might be a situation where the hash isn't stable: if the data 
buffer isn't initialised, and not completely filled by the file reads, the end 
of the buffer could differ between two calls on the same file, and thus the 
hash value could differ (as the full buffer is sent to the generator).



More information about the Digikam-users mailing list