Quote Originally Posted by smitty3268 View Post
There's a reason every FS and DB I've ever heard of that added checksums uses simple CRC hashing.

It's a simple algorithm that is well suited to the task.

You could replace it with SHA-1, but what would that give you? A much more complicated and CPU-taxing algorithm, and nothing else. Crypto hashes have to be a lot more complicated so that small changes to the data provide pseudo-random changes to the hash that can't be reverse-engineered. There's isn't a single good reason to want that overhead in an integrity check.

If you want to verify that the data hasn't been tampered with, you should just encrypt the whole FS.
SHA-1 and the various hash based algorithms will give you a much higher error detection rate than a simple crc-32, a crc-32 can only detect certain types of errors and certain degrees of errors within that (i.e it can for example catch burst errors but not if they are over X bits of length). They do introduce a major overhead though, however since this is for the meta-data only anyways, the performance overhead shouldn't be that much.