...and the checksum algorithm is nothing more than a simple "Exclusive OR" at the byte level. It does NOT quarantee that two rows are different and it doesn't guarantee that a row hasn't been somehow changed. It should only be used as a basic sanity check (if that). I don't know why they even bothered except that every language seems to have one and many of them have the same problem.
Closer to being perfect is the LUN 10 checksum (sanity check on credit card numbers)... but even that can have a failure.
--Jeff Moden
Change is inevitable... Change for the better is not.