mirror of
https://github.com/python/cpython.git
synced 2025-09-15 05:06:12 +00:00

A new hashlib module to replace the md5 and sha modules. It adds support for additional secure hashes such as SHA-256 and SHA-512. The hashlib module uses OpenSSL for fast platform optimized implementations of algorithms when available. The old md5 and sha modules still exist as wrappers around hashlib to preserve backwards compatibility.
92 lines
3 KiB
TeX
92 lines
3 KiB
TeX
\section{\module{md5} ---
|
|
MD5 message digest algorithm}
|
|
|
|
\declaremodule{builtin}{md5}
|
|
\modulesynopsis{RSA's MD5 message digest algorithm.}
|
|
|
|
\deprecated{2.5}{Use the \refmodule{hashlib} module instead.}
|
|
|
|
This module implements the interface to RSA's MD5 message digest
|
|
\index{message digest, MD5}
|
|
algorithm (see also Internet \rfc{1321}). Its use is quite
|
|
straightforward:\ use \function{new()} to create an md5 object.
|
|
You can now feed this object with arbitrary strings using the
|
|
\method{update()} method, and at any point you can ask it for the
|
|
\dfn{digest} (a strong kind of 128-bit checksum,
|
|
a.k.a. ``fingerprint'') of the concatenation of the strings fed to it
|
|
so far using the \method{digest()} method.
|
|
\index{checksum!MD5}
|
|
|
|
For example, to obtain the digest of the string \code{'Nobody inspects
|
|
the spammish repetition'}:
|
|
|
|
\begin{verbatim}
|
|
>>> import md5
|
|
>>> m = md5.new()
|
|
>>> m.update("Nobody inspects")
|
|
>>> m.update(" the spammish repetition")
|
|
>>> m.digest()
|
|
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
|
|
\end{verbatim}
|
|
|
|
More condensed:
|
|
|
|
\begin{verbatim}
|
|
>>> md5.new("Nobody inspects the spammish repetition").digest()
|
|
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'
|
|
\end{verbatim}
|
|
|
|
The following values are provided as constants in the module and as
|
|
attributes of the md5 objects returned by \function{new()}:
|
|
|
|
\begin{datadesc}{digest_size}
|
|
The size of the resulting digest in bytes. This is always
|
|
\code{16}.
|
|
\end{datadesc}
|
|
|
|
md5 objects support the following methods:
|
|
|
|
\begin{funcdesc}{new}{\optional{arg}}
|
|
Return a new md5 object. If \var{arg} is present, the method call
|
|
\code{update(\var{arg})} is made.
|
|
\end{funcdesc}
|
|
|
|
\begin{funcdesc}{md5}{\optional{arg}}
|
|
For backward compatibility reasons, this is an alternative name for the
|
|
\function{new()} function.
|
|
\end{funcdesc}
|
|
|
|
An md5 object has the following methods:
|
|
|
|
\begin{methoddesc}[md5]{update}{arg}
|
|
Update the md5 object with the string \var{arg}. Repeated calls are
|
|
equivalent to a single call with the concatenation of all the
|
|
arguments: \code{m.update(a); m.update(b)} is equivalent to
|
|
\code{m.update(a+b)}.
|
|
\end{methoddesc}
|
|
|
|
\begin{methoddesc}[md5]{digest}{}
|
|
Return the digest of the strings passed to the \method{update()}
|
|
method so far. This is a 16-byte string which may contain
|
|
non-\ASCII{} characters, including null bytes.
|
|
\end{methoddesc}
|
|
|
|
\begin{methoddesc}[md5]{hexdigest}{}
|
|
Like \method{digest()} except the digest is returned as a string of
|
|
length 32, containing only hexadecimal digits. This may
|
|
be used to exchange the value safely in email or other non-binary
|
|
environments.
|
|
\end{methoddesc}
|
|
|
|
\begin{methoddesc}[md5]{copy}{}
|
|
Return a copy (``clone'') of the md5 object. This can be used to
|
|
efficiently compute the digests of strings that share a common initial
|
|
substring.
|
|
\end{methoddesc}
|
|
|
|
|
|
\begin{seealso}
|
|
\seemodule{sha}{Similar module implementing the Secure Hash
|
|
Algorithm (SHA). The SHA algorithm is considered a
|
|
more secure hash.}
|
|
\end{seealso}
|