md5 or other checksums do not guarantee bit-for-bit integrity. They are just a way to gain confidence about the integrity of files without resorting to a much slower bit-for-bit comparison.
This is wrong on so many levels... (ok, only two, but still...)
- While there are known collision attacks against some hashing algorithms they are still considered the ideal way to ensure bit-for-bit file integrity. Try creating a file, create a md5 hash of it, change ONE BIT, create another md5 and see how they are not the same. The chances of having a file get corrupted and happen to retain the same md5 hash is nil.
- Hashing a file is not faster than doing a bit-for-bit comparison. In order to create a hash of a file you must read every byte and apply a mathematical transform. You use hashing because a hash is vastly smaller than the file.