EVP Message Digests

A Message Digest or Hash Function takes any arbitrary message (with any content or length) as an input and provides a fixed size hash value as a result. Specifically the function exhibits the following properties:

It is simple to create a hash value for any given message

It is computationally infeasible to calculate a message from any given hash (i.e. the function is one-way)

It is infeasible to modify a message without also modifying the hash value