Ricerca…


introduzione

hashlib implementa un'interfaccia comune a molti diversi algoritmi di hash sicuro e di messaggistica dei messaggi. Sono inclusi gli algoritmi di hash sicuro FIPS SHA1, SHA224, SHA256, SHA384 e SHA512.

Hash MD5 di una stringa

Questo modulo implementa un'interfaccia comune a molti diversi algoritmi di hash sicuro e di messaggistica dei messaggi. Sono inclusi gli algoritmi di hash sicuro FAS SHA1, SHA224, SHA256, SHA384 e SHA512 (definiti in FIPS 180-2) e l'algoritmo MD5 di RSA (definito in Internet RFC 1321).

Esiste un metodo di costruzione denominato per ciascun tipo di hash. Tutti restituiscono un oggetto hash con la stessa semplice interfaccia. Ad esempio: utilizzare sha1() per creare un oggetto hash SHA1.

hash.sha1()

I costruttori per gli algoritmi di hash che sono sempre presenti in questo modulo sono md5() , sha1() , sha224() , sha256() , sha384() e sha512() .

Ora puoi alimentare questo oggetto con stringhe arbitrarie usando il metodo update() . In qualsiasi momento puoi chiedergli il riassunto della concatenazione delle stringhe ad esso alimentate fino ad ora usando i metodi digest() o hexdigest() .

hash.update(arg)

Aggiorna l'oggetto hash con la stringa arg. Le chiamate ripetute sono equivalenti a una singola chiamata con la concatenazione di tutti gli argomenti: m.update (a); m.update (b) è equivalente a m.update (a + b).

hash.digest()

Restituisce il riassunto delle stringhe passato al metodo update () finora. Questa è una stringa di byte digest_size che può contenere caratteri non ASCII, inclusi byte null.

hash.hexdigest()

Come digest () eccetto che il digest viene restituito come una stringa di doppia lunghezza, contenente solo cifre esadecimali. Questo può essere usato per scambiare il valore in sicurezza in e-mail o in altri ambienti non binari.

Ecco un esempio:

>>> import hashlib
>>> m = hashlib.md5()
>>> 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'
>>> m.hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'
>>> m.digest_size
16
>>> m.block_size
64

o:

hashlib.md5("Nobody inspects the spammish repetition").hexdigest()
    'bb649c83dd1ea5c9d9dec9a18df0ffe9'

algoritmo fornito da OpenSSL

Esiste anche un costruttore new() generico che accetta il nome stringa dell'algoritmo desiderato come primo parametro per consentire l'accesso agli hash elencati sopra così come a qualsiasi altro algoritmo che la libreria OpenSSL può offrire. I costruttori denominati sono molto più veloci di new() e dovrebbero essere preferiti.

Usando new() con un algoritmo fornito da OpenSSL:

>>> h = hashlib.new('ripemd160')
>>> h.update("Nobody inspects the spammish repetition")
>>> h.hexdigest()
'cc4a5ce1b3df48aec5d22d1f16b894a0b894eccc'


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow