module Hash: sig
.. end
The Hash
module implements unkeyed cryptographic hashes (SHA-1,
SHA-256, RIPEMD-160 and MD5), also known as message digest functions.
Hash functions used in cryptography are characterized as being
one-way (given a hash value, it is computationally
infeasible to find a text that hashes to this value) and
collision-resistant (it is computationally infeasible to
find two different texts that hash to the same value). Thus, the
hash of a text can be used as a compact replacement for this text
for the purposes of ensuring integrity of the text.
val sha1 : unit -> Cryptokit.hash
SHA-1 is the Secure Hash Algorithm revision 1. It is a NIST
standard, is widely used, and produces 160-bit hashes (20 bytes).
Recent results suggest that it is not collision-resistant.
val sha256 : unit -> Cryptokit.hash
SHA-256, another NIST standard, is a variant of SHA-1 that
produces 256-bit hashes (32 bytes).
val ripemd160 : unit -> Cryptokit.hash
RIPEMD-160 produces 160-bit hashes (20 bytes).
val md5 : unit -> Cryptokit.hash
MD5 is an older hash function, producing 128-bit hashes (16 bytes).
While popular in many legacy applications, it is now
considered as unsecure. In particular, it is not
collision-resistant.