1 2 :mod:`md5` --- MD5 message digest algorithm 3 =========================================== 4 5 .. module:: md5 6 :synopsis: RSA's MD5 message digest algorithm. 7 :deprecated: 8 9 10 .. deprecated:: 2.5 11 Use the :mod:`hashlib` module instead. 12 13 .. index:: 14 single: message digest, MD5 15 single: checksum; MD5 16 17 This module implements the interface to RSA's MD5 message digest algorithm (see 18 also Internet :rfc:`1321`). Its use is quite straightforward: use :func:`new` 19 to create an md5 object. You can now feed this object with arbitrary strings 20 using the :meth:`update` method, and at any point you can ask it for the 21 :dfn:`digest` (a strong kind of 128-bit checksum, a.k.a. "fingerprint") of the 22 concatenation of the strings fed to it so far using the :meth:`digest` method. 23 24 For example, to obtain the digest of the string ``'Nobody inspects the spammish 25 repetition'``: 26 27 >>> import md5 28 >>> m = md5.new() 29 >>> m.update("Nobody inspects") 30 >>> m.update(" the spammish repetition") 31 >>> m.digest() 32 '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9' 33 34 More condensed: 35 36 >>> md5.new("Nobody inspects the spammish repetition").digest() 37 '\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9' 38 39 The following values are provided as constants in the module and as attributes 40 of the md5 objects returned by :func:`new`: 41 42 43 .. data:: digest_size 44 45 The size of the resulting digest in bytes. This is always ``16``. 46 47 The md5 module provides the following functions: 48 49 50 .. function:: new([arg]) 51 52 Return a new md5 object. If *arg* is present, the method call ``update(arg)`` 53 is made. 54 55 56 .. function:: md5([arg]) 57 58 For backward compatibility reasons, this is an alternative name for the 59 :func:`new` function. 60 61 An md5 object has the following methods: 62 63 64 .. method:: md5.update(arg) 65 66 Update the md5 object with the string *arg*. Repeated calls are equivalent to a 67 single call with the concatenation of all the arguments: ``m.update(a); 68 m.update(b)`` is equivalent to ``m.update(a+b)``. 69 70 71 .. method:: md5.digest() 72 73 Return the digest of the strings passed to the :meth:`update` method so far. 74 This is a 16-byte string which may contain non-ASCII characters, including null 75 bytes. 76 77 78 .. method:: md5.hexdigest() 79 80 Like :meth:`digest` except the digest is returned as a string of length 32, 81 containing only hexadecimal digits. This may be used to exchange the value 82 safely in email or other non-binary environments. 83 84 85 .. method:: md5.copy() 86 87 Return a copy ("clone") of the md5 object. This can be used to efficiently 88 compute the digests of strings that share a common initial substring. 89 90 91 .. seealso:: 92 93 Module :mod:`sha` 94 Similar module implementing the Secure Hash Algorithm (SHA). The SHA algorithm 95 is considered a more secure hash. 96 97