Python Language
hashlib
Zoeken…
Invoering
hashlib implementeert een gemeenschappelijke interface voor veel verschillende veilige hash- en message digest-algoritmen. Inbegrepen zijn de FIPS veilige hash-algoritmen SHA1, SHA224, SHA256, SHA384 en SHA512.
MD5 hash van een string
Deze module implementeert een gemeenschappelijke interface voor veel verschillende veilige hash- en message digest-algoritmen. Inbegrepen zijn de FIPS veilige hash-algoritmen SHA1, SHA224, SHA256, SHA384 en SHA512 (gedefinieerd in FIPS 180-2) evenals RSA's MD5-algoritme (gedefinieerd in Internet RFC 1321).
Er is één constructormethode genoemd voor elk type hash. Alle retourneren een hash-object met dezelfde eenvoudige interface. Bijvoorbeeld: gebruik sha1()
om een SHA1 hash-object te maken.
hash.sha1()
Constructors voor hash-algoritmen die altijd aanwezig zijn in deze module zijn md5()
, sha1()
, sha224()
, sha256()
, sha384()
en sha512()
.
U kunt dit object nu voeden met willekeurige tekenreeksen met de methode update()
. U kunt het op elk gewenst moment vragen om de samenvatting van de aaneenschakeling van de tekenreeksen die tot nu toe zijn ingevoerd met de methoden digest()
of hexdigest()
.
hash.update(arg)
Werk het hash-object bij met de tekenreeks arg. Herhaalde oproepen zijn gelijk aan een enkele oproep met de aaneenschakeling van alle argumenten: m.update (a); m.update (b) is gelijk aan m.update (a + b).
hash.digest()
Retourneer de samenvatting van de tekenreeksen die tot nu toe zijn doorgegeven aan de update () -methode. Dit is een reeks digest_size bytes die mogelijk niet-ASCII-tekens bevat, inclusief null-bytes.
hash.hexdigest()
Like digest () behalve dat de samenvatting wordt geretourneerd als een reeks met een dubbele lengte, die alleen hexadecimale cijfers bevat. Dit kan worden gebruikt om de waarde veilig uit te wisselen in e-mail of andere niet-binaire omgevingen.
Hier is een voorbeeld:
>>> 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
of:
hashlib.md5("Nobody inspects the spammish repetition").hexdigest()
'bb649c83dd1ea5c9d9dec9a18df0ffe9'
algoritme aangeboden door OpenSSL
Een generieke new()
-constructor die de tekenreeksnaam van het gewenste algoritme als eerste parameter gebruikt, bestaat ook om toegang tot de hierboven genoemde hashes mogelijk te maken, evenals alle andere algoritmen die uw OpenSSL-bibliotheek kan bieden. De genoemde constructors zijn veel sneller dan new()
en verdienen de voorkeur.
new()
met een algoritme van OpenSSL:
>>> h = hashlib.new('ripemd160')
>>> h.update("Nobody inspects the spammish repetition")
>>> h.hexdigest()
'cc4a5ce1b3df48aec5d22d1f16b894a0b894eccc'