Checksum routine - new to Python
Dale Strickland-Clark
dale at out-think.NOSPAMco.uk
Thu May 18 19:14:19 EDT 2000
Thanks for the replies.
MD5 looks interesting.
--
Dale Strickland-Clark
Out-Think Ltd, UK
Dale Strickland-Clark <dale at out-think.NOSPAMco.uk> wrote in message
news:8g1no6$8uc$1 at supernews.com...
> I need a little checksum routine as part of a larger project. I've written
> the one below, which basically works, but it only produces a 32 bit
> checksum. I'd prefer a 64 bit checksum but don't know how to code it in
> Python. I can't get 'logical and' with >31 bits to work.
>
> This code might look unusual but some of the files I'm checksumming have
> long strings of binary zeros at the end which were having the effect of
> clearing out the checksum. Also this code will handle files that are all
> zeros and still yield a useful result.
>
> If there is a Python library with something suitable, I'll happily use
that
> instead.
>
> Thanks for any advice/help.
>
> def CheckSum(filepath):
>
> file = open(filepath, "rb")
>
> chksum = 0L
> toggle = 0
>
> allfile = file.read()
> i = 0
> while i < len(allfile):
> ch = allfile[i]
> if ord(ch) > 0:
> if toggle: chksum = chksum << 1
> chksum = chksum + ord(ch)
> chksum = chksum & 0X7fffffff
> toggle = not toggle
> else:
> chksum = chksum + 1
> i = i + 1
>
> return chksum
>
>
> --
> Dale Strickland-Clark
> Out-Think Ltd, UK
>
>
>
More information about the Python-list
mailing list