Oleg Broytmann phd at
Wed Nov 24 16:47:03 CET 1999

On Wed, 24 Nov 1999, Thomas Weholt wrote:
> crc = module_name.crc_method(file)
> and comparison is done like :
> if (crc1 == crc2): print "Equal."
> else : print "Different."
> then all I need is the name of the most effective/accurate module to
> use.

   Use md5. It is one of the best in this area. Attached module has a
method that you can use to md5 a file.

    Oleg Broytmann      Foundation for Effective Policies      phd at
           Programmers don't die, they just GOSUB without RETURN.
-------------- next part --------------
#! /usr/local/bin/python
   User wrapper for md5 builtin object

   Written by BroytMann, Jun 1997. Copyright (C) 1997 PhiloSoft Design

from md5 import md5

class md5wrapper:
   def __init__(self, init=None):
      if init:
         self._md5 = md5(init)
         self._md5 = md5()

   def update(self, data):

   def digest(self):
      return self._md5.digest()

   def __repr__(self):
      str = self.digest()
      return "%02x"*len(str) % tuple(map(ord, str))
         # This nice was suggested by Guido

   def md5file(self, f):
      if type(f) == type(''): # If f is string - use it as file's name
         infile = open(f, 'r')
         infile = f           # else assume it is opened file (fileobject) or
                              # "compatible" object (must has readline() method)

         while 1:
            buf =*1024)
            if not buf: break

         if type(f) == type(''): # If f was opened - close it

if __name__ == "__main__":
   print "This must print exactly the string"
   print "Test: 900150983cd24fb0d6963f7d28e17f72"
   print "Test:", md5wrapper("abc")

More information about the Python-list mailing list