\section{Built-in module \sectcode{md5}} \bimodindex{md5} This module implements the interface to RSA's MD5 message digest algorithm (see also the file \file{md5.doc}). Its use is quite straightforward: use the function \code{md5} to create an \dfn{md5}-object. You can now ``feed'' this object with arbitrary strings. At any time you can ask for the ``final'' digest of the object. Internally, a temporary copy of the object is made and the digest is computed and returned. Because of the copy, the digest operation is not destructive for the object. Before a more exact description of the module's use, a small example will be helpful: to obtain the digest of the string \code{'abc'}, use \ldots \bcode\begin{verbatim} >>> import md5 >>> m = md5.new() >>> m.update('abc') >>> m.digest() '\220\001P\230<\322O\260\326\226?}(\341\177r' \end{verbatim}\ecode More condensed: \bcode\begin{verbatim} >>> md5.new('abc').digest() '\220\001P\230<\322O\260\326\226?}(\341\177r' \end{verbatim}\ecode \renewcommand{\indexsubitem}{(in module md5)} \begin{funcdesc}{new}{\optional{arg}} Create a new md5-object. If \var{arg} is present, an initial \code{update} method is called with \var{arg} as argument. \end{funcdesc} \begin{funcdesc}{md5}{\optional{arg}} For backward compatibility reasons, this is an alternative name for the \code{new} function. \end{funcdesc} An md5-object has the following methods: \renewcommand{\indexsubitem}{(md5 method)} \begin{funcdesc}{update}{arg} Update this md5-object with the string \var{arg}. \end{funcdesc} \begin{funcdesc}{digest}{} % XXX The following is not quite clear; what does MD5Final do? Return the \dfn{digest} of this md5-object. Internally, a copy is made and the \C-function \code{MD5Final} is called. Finally the digest is returned. \end{funcdesc} \begin{funcdesc}{copy}{} Return a separate copy of this md5-object. An \code{update} to this copy won't affect the original object. \end{funcdesc}