view paraspace/tools.py @ 68:b7432d6f7e93

adler32
author Thinker K.F. Li <thinker@codemud.net>
date Wed, 29 Jun 2011 19:56:24 +0800
parents
children ff6f869273b7
line wrap: on
line source

base = 65521

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