----------------------------------------
--
----------------------------------------
on adler32 (str)
adler_base = 65521
low = 1
high = 0
len = length(str)
repeat with n = 1 to len
low = (low + chartonum(str.char[n])) mod adler_base
high = (high + low) mod adler_base
end repeat
crc = high * 65536 + low
return crc
end
----------------------------------------
--
----------------------------------------
on adler32_hex (str)
adler_base = 65521
low = 1
high = 0
len = length(str)
repeat with n = 1 to len
low = (low + chartonum(str.char[n])) mod adler_base
high = (high + low) mod adler_base
end repeat
crc = dec2hex(high) & dec2hex(low)
return crc
end
-- 0 < d < 65536, returns 4 bytes
on dec2hex d
return rgb(0, d/256, d mod 256).hexString().char[4..7]
end