15.2 md5 -- Algoritmo di messaggi digest MD5

Questo modulo implementa l'interfaccia per l'algoritmo del messaggio digest RSA MD5 (si veda anche Internet RFC 1321). Il suo uso è piuttosto diretto: si usa new() per creare un oggetto md5. Quindi si passano a questo oggetto stringhe diverse usando il metodo update() potendo, in qualsiasi momento, ottenerne il digest (un potente tipo di checksum a 128 bit, noto anche come ``fingerprint'') della concatenazione delle stringhe fino a quel momento passate, grazie al metodo digest().

Per esempio, per ottenere il digest della stringa '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'

In maniera più concisa:

>>> md5.new("Nobody inspects the spammish repetition").digest()
'\xbbd\x9c\x83\xdd\x1e\xa5\xc9\xd9\xde\xc9\xa1\x8d\xf0\xff\xe9'

I seguenti valori sono forniti come costanti nel modulo e come attributi degli oggetti md5 restituiti da new():

digest_size
La dimensione in bytes del digest risultante. È sempre 16.

Gli oggetti md5 supportano i seguenti metodi:

new( [arg])
Restituisce un nuovo oggetto md5. Se viene passato arg, viene eseguita la chiamata al metodo update(arg).

md5( [arg])
Per ragioni di compatibilità con il passato, questo è un nome alternativo per la funzione new().

Un oggetto md5 possiede i seguenti metodi:

update( arg)
Aggiorna l'oggetto md5 con la stringa arg. Chiamate ripetute equivalgono ad una singola chiamata i cui argomenti sono concatenati: m.update(a); m.update(b) equivale a m.update(a+b).

digest( )
Restituisce il digest delle stringhe passate fino a quel momento al metodo update(). Questo è una stringa da 16 byte che può contenere caratteri non ASCII, compresi i bytes null.

hexdigest( )
Equivalente a digest() tranne per il fatto che il digest viene restituito come una stringa di dimensione 32 contenente solamente cifre esadecimali. Può essere usato nelle email o in altri ambienti non binari per modificarne il valore senza rischi .

copy( )
Restituisce una copia (``clone'') dell'oggetto md5. Può essere usato per calcolare efficientemente i digest di quelle stringhe che condividono una medesima sottostringa iniziale.

Vedete anche:

Modulo sha:
Un modulo simile implementa il Secure Hash Algorithm (SHA). L'algoritmo SHA è considerato un hash più sicuro.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.