Security note: SHA-256, SHA-384, and SHA-512 are suitable for many integrity and fingerprinting uses. MD5 and SHA-1 are included for compatibility, but should not be used for new security-sensitive systems. Fast/checksum hashes are useful for bucketing, checksums, and non-security identifiers.