MD5(3) BSD Library Functions Manual MD5(3)
NAME
MD5Init, MD5Update, MD5Final, MD5End, MD5File, MD5Data -- calculate the RSA Data Security, Inc., ``MD5'' message digest
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <md5.h>
void
MD5Init(MD5_CTX *context);
void
MD5Update(MD5_CTX *context, const unsigned char *data, unsigned int len);
void
MD5Final(unsigned char digest[16], MD5_CTX *context);
char *
MD5End(MD5_CTX *context, char *buf);
char *
MD5File(const char *filename, char *buf);
char *
MD5Data(const unsigned char *data, unsigned int len, char *buf);
DESCRIPTION
The MD5 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 MD5Init(), MD5Update(), and MD5Final() functions are the core functions. Allocate an MD5_CTX, initialize it with MD5Init(), run over the
data with MD5Update(), and finally extract the result using MD5Final().
MD5End() is a wrapper for MD5Final() which converts the return value to a 33-character (including the terminating '