CRC32Fingerprint()
Syntax
Result = CRC32Fingerprint(*Buffer, Size [, InitialValue])Description
Perform a CRC32 checksum on the given buffer.
Parameters
*Buffer The buffer containing the data for the checksum calculation. Size The size of the given buffer. InitialValue (optional) The optional InitialValue parameter can be used to pass the checksum of a previous buffer. The result will then be the checksum of both buffers, as if it were calculated from one continuous buffer. This way calculating the checksum of large data can be broken down into a number of calculations on smaller buffers.
Return value
Returns the calculated checksum.
Remarks
CRC32 is a 32-bit fingerprint not intended for password storage as it's easily crackable, but for quick data integrity check. For example, zip files have a CRC32 checksum at the end of each file to be sure that the zip is not corrupted. The main advantage of CRC32 over MD5 or other hash algorithm is its very high speed.
Example
*Buffer = AllocateMemory(200) ; Prepare a buffer with data If *Buffer PokeS(*Buffer, "The quick brown fox jumps over the lazy dog.") Length = MemoryStringLength(*Buffer) CRC32 = CRC32Fingerprint(*Buffer, Length) ; Calculate the checksum in 1 step Debug "CRC32 checksum = " + Str(CRC32) Part1 = CRC32Fingerprint(*Buffer, Length/2) ; Calculate the checksum in 2 steps CRC32 = CRC32Fingerprint(*Buffer+Length/2, Length/2, Part1) Debug "CRC32 checksum = " + Str(CRC32) FreeMemory(*Buffer) EndIf
See Also
CRC32FileFingerprint(), MD5Fingerprint(), SHA1Fingerprint()
Supported OS
All