|
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 |