view paraspace/tools.py @ 126:ff6f869273b7

Fix wrong init value for computing checksum
author Thinker K.F. Li <thinker@codemud.net>
date Mon, 08 Aug 2011 17:26:05 +0800
parents b7432d6f7e93
children
line wrap: on
line source

base = 65521

adler32_init_value = 1

def adler32(adler, buf, offset, sz):
    sum1 = adler & 0xffff
    sum2 = (adler >> 16) & 0xffff
    for off in range(offset, offset + sz):
        sum1 = (sum1 + ord(buf[off])) % base
        sum2 = (sum2 + sum1) % base
        pass
    r = (sum2 << 16) | sum1
    return r