[Tutor] hashlib weirdness

Greg Perry gregp at liveammo.com
Mon Apr 2 20:34:00 CEST 2007


Thanks Terry, others have pointed out the same thing.  The stock Python 2.5 interpreter functions properly; my issue seems to be with the IDE I am using, that is where I've been able to nail down the problem so far.

-----Original Message-----
From: Terry Carroll

On 30 Mar 2007, Greg Perry wrote:
>
>> Here's one that has me stumped.
> 
> I am writing a forensic analysis tool that takes either a file or a
> directory as input, then calculates a hash digest based on the contents
> of each file.
> 
> I have created an instance of the hashlib class:
> 
> m = hashlib.md5()
> 
> I then load in a file in binary mode:
> 
> f = open("c:\python25\python.exe", "rb")
> 
> According to the docs, the hashlib update function will update the hash
> object with the string arg.  So:
> 
> m.update(f.read())
> m.hexdigest()
> 
> The md5 hash is not correct for the file.
>
>Odd.  It's correct for me:
>
>In Python:
>
>>>> import hashlib
>>> m = hashlib.md5()
>>> f = open("c:\python25\python.exe", "rb")
>>> m.update(f.read())
>>> m.hexdigest()
>'7e7c8ae25d268636a3794f16c0c21d7c'
>
>Now, check against the md5 as calculated by the md5sum utility:
>
>>md5sum c:\Python25\python.exe
>\7e7c8ae25d268636a3794f16c0c21d7c *c:\\Python25\\python.exe
>
>
>> f.seek(0)
> hashlib.md5(f.read()).hexdigest()
>
>No difference here:
>
>>>> f.close()
>>> f = open("c:\python25\python.exe", "rb")
>>> hashlib.md5(f.read()).hexdigest()
>'7e7c8ae25d268636a3794f16c0c21d7c'
>
>_______________________________________________
>Tutor maillist  -  Tutor at python.org
>http://mail.python.org/mailman/listinfo/tutor
>
>




More information about the Tutor mailing list