Recherche…


Introduction

hashlib implémente une interface commune à de nombreux algorithmes de hachage et de résumé de messages sécurisés. Les algorithmes de hachage sécurisés FIPS SHA1, SHA224, SHA256, SHA384 et SHA512 sont inclus.

MD5 hash d'une chaîne

Ce module implémente une interface commune à de nombreux algorithmes de hachage et de résumé des messages sécurisés. Sont inclus les algorithmes de hachage sécurisés FIPS SHA1, SHA224, SHA256, SHA384 et SHA512 (définis dans FIPS 180-2) ainsi que l'algorithme MD5 de RSA (défini dans Internet RFC 1321).

Il existe une méthode de constructeur nommée pour chaque type de hachage. Tous renvoient un objet de hachage avec la même interface simple. Par exemple, utilisez sha1() pour créer un objet de hachage SHA1.

hash.sha1()

Les constructeurs des algorithmes de hachage qui sont toujours présents dans ce module sont md5() , sha1() , sha224() , sha256() , sha384() et sha512() .

Vous pouvez maintenant alimenter cet objet avec des chaînes arbitraires en utilisant la méthode update() . A tout moment, vous pouvez demander le résumé de la concaténation des chaînes qui lui ont été hexdigest() à l'aide des méthodes digest() ou hexdigest() .

hash.update(arg)

Mettez à jour l'objet hash avec la chaîne arg. Les appels répétés équivalent à un seul appel avec la concaténation de tous les arguments: m.update (a); m.update (b) est équivalent à m.update (a + b).

hash.digest()

Renvoie le résumé des chaînes passées à la méthode update () jusqu'à présent. Il s'agit d'une chaîne d'octets digest_size pouvant contenir des caractères non-ASCII, y compris des octets nuls.

hash.hexdigest()

Comme digest (), sauf que digest est renvoyé sous la forme d'une chaîne de longueur double, contenant uniquement des chiffres hexadécimaux. Cela peut être utilisé pour échanger la valeur en toute sécurité dans le courrier électronique ou dans d'autres environnements non binaires.

Voici un exemple:

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

ou:

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

algorithme fourni par OpenSSL

Un constructeur new() générique qui prend le nom de chaîne de l'algorithme souhaité comme premier paramètre existe également pour permettre l'accès aux hachages répertoriés ci-dessus, ainsi que tout autre algorithme que votre bibliothèque OpenSSL peut offrir. Les constructeurs nommés sont beaucoup plus rapides que new() et devraient être préférés.

Utiliser new() avec un algorithme fourni par 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
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow