OBSOLETE
SYNOPSIS
        string md5(string arg [, int iterations])
        string md5(bytes arg [, int iterations])
        string md5(int *  arg [, int iterations])

DESCRIPTION
        Create and return a MD5 message digest from <arg>.
        <arg> may be a string, a byte sequence, or an array of numbers
        (each considered to be a byte, ignoring all but the lowest 8 bits).
        A string is converted to a UTF-8 byte sequence of which then the
        digest will be created.

        If <iterations> is given as a number greater than 0, it is
        the number of iterations used in the digest calculation. If omitted,
        the driver executes just one iteration.

        The efun costs 5 ticks per iteration.

EXAMPLES
        string s;

        s = md5("Hello");
        s = md5( ({ 'H', 'e', 'l', 'l', 'o' }) )
        s = md5( ({ 'H', 'e', 'l', 'l', 'o' }), 2 )

HISTORY
        Introduced in LDMud 3.2.9.
        LDMud 3.2.12 added number arrays as argument, and the number of
        interations.
        LDMud 3.3.717 added the iteration-based evaluation cost.
        Since LDMud 3.3.719 obsoleted by hash().

SEE ALSO
        crypt(E), md5_crypt(E), sha1(E), hash(E), hmac(E)
