p 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.
p The .Fn MDXInit , .Fn MDXUpdate , and .Fn MDXFinal functions are the core functions. Allocate an MDX_CTX, initialize it with .Fn MDXInit , run over the data with .Fn MDXUpdate , and finally extract the result using .Fn MDXFinal .
p .Fn MDXEnd is a wrapper for .Fn MDXFinal which converts the return value to a 33-character (including the terminating '\e0') .Tn ASCII string which represents the 128 bits in hexadecimal.
p .Fn MDXFile calculates the digest of a file, and uses .Fn MDXEnd to return the result. If the file cannot be opened, a null pointer is returned. .Fn MDXData calculates the digest of a chunk of data in memory, and uses .Fn MDXEnd to return the result.
p When using .Fn MDXEnd , .Fn MDXFile , or .Fn MDXData , the .Ar buf argument can be a null pointer, in which case the returned string is allocated with .Xr malloc 3 and subsequently must be explicitly deallocated using .Xr free 3 after use. If the .Ar buf argument is non-null it must point to at least 33 characters of buffer space. .Sh SEE ALSO .Xr md2 3 , .Xr md4 3 , .Xr md5 3 , .Xr openssl_MD2 3 , .Xr openssl_MD4 3 , .Xr openssl_MD5 3 .Rs .%A B. Kaliski .%T The MD2 Message-Digest Algorithm .%O RFC 1319 .Re .Rs .%A R. Rivest .%T The MD4 Message-Digest Algorithm .%O RFC 1186 .Re .Rs .%A R. Rivest .%T The MD5 Message-Digest Algorithm .%O RFC 1321 .Re .Rs .%A RSA Laboratories .%T Frequently Asked Questions About today's Cryptography .Re .Sh HISTORY These functions appeared in .Nx 1.3 . .Sh AUTHORS .An -nosplit The original MDX routines were developed by .An RSA Data Security, Inc. , and published in the above references. This code is derived directly from these implementations by .An Poul-Henning Kamp Aq Mt phk (at] login.dkuug.dk .
p Phk ristede runen. .Sh BUGS No method is known to exist which finds two files having the same hash value, nor to find a file with a specific hash value. There is on the other hand no guarantee that such a method doesn't exist.