On 02/03/2015 06:19, Sarvagya Pant wrote: > Hello, I am amazed that the md5 of a file given by python in windows is > different than that of linux. Consider the following code: > > import hashlib > def md5_for_file(f, block_size=2**20): > md5 = hashlib.md5() > while True: > data = f.read(block_size) > if not data: > break > md5.update(data) > return md5.hexdigest() > > f = open("somefile.txt") > print md5_for_file(f) > > When I run the program I get the checksum value: > 2f9cc8da53ee89762a34702f745d2956 > > But on this site http://onlinemd5.com/ and on linux it has value > E10D4E3847713472F51BC606852712F1. > > Why is there difference in value of Checksum computed by python in > windows and other system.?
Because you're opening the file in text mode (implicitly; that's the default) which silently converts certain characters. If you open it in binary mode: f = open("somefile.txt", "rb") then you should see the same result TJG -- https://mail.python.org/mailman/listinfo/python-list