MD4(3) BSD Library Functions Manual MD4(3)
MD4Init, MD4Update, MD4Final, MD4End, MD4File, MD4Data -- calculate the RSA Data Security, Inc., ``MD4'' message digest
Standard C Library (libc, -lc)
MD4Update(MD4_CTX *context, const unsigned char *data, unsigned int len);
MD4Final(unsigned char digest, MD4_CTX *context);
MD4End(MD4_CTX *context, char *buf);
MD4File(const char *filename, char *buf);
MD4Data(const unsigned char *data, unsigned int len, char *buf);
The MD4 functions calculate a 128-bit cryptographic checksum (digest) for any number of input bytes. A cryptographic checksum is a one-way
hash-function, that is, you cannot find (except by exhaustive search) the input corresponding to a particular output. This net result is a
``fingerprint'' of the input-data, which doesn't disclose the actual input.
MD2 is the slowest, MD4 is the fastest and MD5 is somewhere in the middle. MD2 can only be used for Privacy-Enhanced Mail. MD4 has been
criticized for being too weak, so MD5 was developed in response as ``MD4 with safety-belts''. When in doubt, use MD5.
The MD4Init(), MD4Update(), and MD4Final() functions are the core functions. Allocate an MD4_CTX, initialize it with MD4Init(), run over the
data with MD4Update(), and finally extract the result using MD4Final().
MD4End() is a wrapper for MD4Final() which converts the return value to a 33-character (including the terminating '