general crc32 based on zlib