| |
| :mod:`md5` --- MD5 message digest algorithm |
| =========================================== |
| |
| .. module:: md5 |
| :synopsis: RSA's MD5 message digest algorithm. |
| :deprecated: |
| |
| |
| .. deprecated:: 2.5 |
| Use the :mod:`hashlib` module instead. |
| |
| .. index:: |
| single: message digest, MD5 |
| single: checksum; MD5 |
| |
| This module implements the interface to RSA's MD5 message digest algorithm (see |
| also Internet :rfc:`1321`). Its use is quite straightforward: use :func:`new` |
| to create an md5 object. You can now feed this object with arbitrary strings |
| using the :meth:`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 :meth:`digest` method. |
| |
| For example, to obtain the digest of the string ``'Nobody inspects the spammish |
| repetition'``:: |
| |
| >>> 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' |
| |
| More condensed:: |
| |
| >>> md5.new("Nobody inspects the spammish repetition").digest() |
| '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9' |
| |
| The following values are provided as constants in the module and as attributes |
| of the md5 objects returned by :func:`new`: |
| |
| |
| .. data:: digest_size |
| |
| The size of the resulting digest in bytes. This is always ``16``. |
| |
| The md5 module provides the following functions: |
| |
| |
| .. function:: new([arg]) |
| |
| Return a new md5 object. If *arg* is present, the method call ``update(arg)`` |
| is made. |
| |
| |
| .. function:: md5([arg]) |
| |
| For backward compatibility reasons, this is an alternative name for the |
| :func:`new` function. |
| |
| An md5 object has the following methods: |
| |
| |
| .. method:: md5.update(arg) |
| |
| Update the md5 object with the string *arg*. Repeated calls are equivalent to a |
| single call with the concatenation of all the arguments: ``m.update(a); |
| m.update(b)`` is equivalent to ``m.update(a+b)``. |
| |
| |
| .. method:: md5.digest() |
| |
| Return the digest of the strings passed to the :meth:`update` method so far. |
| This is a 16-byte string which may contain non-ASCII characters, including null |
| bytes. |
| |
| |
| .. method:: md5.hexdigest() |
| |
| Like :meth:`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. |
| |
| |
| .. method:: 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. |
| |
| |
| .. seealso:: |
| |
| Module :mod:`sha` |
| Similar module implementing the Secure Hash Algorithm (SHA). The SHA algorithm |
| is considered a more secure hash. |
| |