Szukaj…


Wprowadzenie

hashlib implementuje wspólny interfejs do wielu różnych bezpiecznych algorytmów skrótów i skrótów wiadomości. Uwzględniono bezpieczne algorytmy skrótu FIPS SHA1, SHA224, SHA256, SHA384 i SHA512.

Skrót MD5 ciągu

Ten moduł implementuje wspólny interfejs do wielu różnych bezpiecznych algorytmów skrótu i skrótu wiadomości. Uwzględniono algorytmy bezpiecznego skrótu FIPS SHA1, SHA224, SHA256, SHA384 i SHA512 (zdefiniowane w FIPS 180-2), a także algorytm MD5 RSA (zdefiniowany w Internecie RFC 1321).

Dla każdego typu skrótu istnieje jedna metoda konstruktora. Wszystkie zwracają obiekt skrótu z tym samym prostym interfejsem. Na przykład: użyj sha1() aby utworzyć obiekt skrótu SHA1.

hash.sha1()

Konstruktorami algorytmów mieszających, które są zawsze obecne w tym module, są md5() , sha1() , sha224() , sha256() , sha384() i sha512() .

Możesz teraz karmić ten obiekt dowolnymi ciągami znaków za pomocą metody update() . W dowolnym momencie możesz poprosić go o podsumowanie konkatenacji łańcuchów, które zostały mu do tej pory dostarczone, za pomocą metod digest() lub hexdigest() .

hash.update(arg)

Zaktualizuj obiekt skrótu ciągiem arg. Powtarzane wywołania są równoważne pojedynczemu wywołaniu połączonemu ze wszystkimi argumentami: m.update (a); m.update (b) jest równoważne m.update (a + b).

hash.digest()

Zwraca podsumowanie ciągów przekazanych do tej pory metody update (). Jest to ciąg bajtów digest_size, który może zawierać znaki inne niż ASCII, w tym bajty zerowe.

hash.hexdigest()

Podobnie jak digest (), z wyjątkiem tego, że skrót jest zwracany jako ciąg podwójnej długości, zawierający tylko cyfry szesnastkowe. Można to wykorzystać do bezpiecznej wymiany wartości w wiadomości e-mail lub w innych środowiskach niebinarnych.

Oto przykład:

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

lub:

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

algorytm dostarczony przez OpenSSL

Istnieje również ogólny konstruktor new() który przyjmuje nazwę ciągu żądanego algorytmu jako pierwszego parametru, aby umożliwić dostęp do wyżej wymienionych skrótów, a także wszelkich innych algorytmów oferowanych przez bibliotekę OpenSSL. Nazwane konstruktory są znacznie szybsze niż new() i powinny być preferowane.

Używanie new() z algorytmem dostarczonym przez 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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow