MD5(9) BSD Kernel Developer's Manual MD5(9)NAME
MD5, MD5Init, MD5Transform -- message digest routines
SYNOPSIS
#include <sys/types.h>
#include <sys/md5.h>
void
MD5Init(MD5_CTX *buf);
void
MD5Transform(uint32_t buf[4], const unsigned char block[64]);
DESCRIPTION
The MD5 module implements the RSA Data Security, Inc. MD5 Message-Digest Algorithm (MD5). It produces 128-bit MD5 Digest of data.
MD5Init must be called just before MD5Transform() will be used to produce a digest. The buf argument is the storage for the digest
being produced on subsequent calls to the MD5Transform() routine.
MD5Transform is the core of the MD5 algorithm, this alters an existing MD5 hash kept in buf to reflect the addition of 64 characters of
new data passed in block argument.
COPYRIGHTS
The code for MD5 transform was taken from Colin Plumb's implementation, which has been placed in the public domain. The MD5 cryptographic
checksum was devised by Ronald Rivest, and is documented in RFC 1321, "The MD5 Message Digest Algorithm".
BSD April 17, 1996 BSD
Check Out this Related Man Page
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 '