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 17This module implements the interface to RSA's MD5 message digest algorithm (see 18also Internet :rfc:`1321`). Its use is quite straightforward: use :func:`new` 19to create an md5 object. You can now feed this object with arbitrary strings 20using 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 22concatenation of the strings fed to it so far using the :meth:`digest` method. 23 24For example, to obtain the digest of the string ``'Nobody inspects the spammish 25repetition'``: 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 34More 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 39The following values are provided as constants in the module and as attributes 40of 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 47The 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 61An 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