Документация по Python

Модуль hashlib

В: Документация по Python

Введение

Примеры

MD5 хеш строки

Этот модуль реализует общий интерфейс для множества различных безопасных алгоритмов хеширования и дайджеста сообщений. Включены алгоритмы безопасного хеширования FIPS SHA1, SHA224, SHA256, SHA384 и SHA512 (определенные в FIPS 180-2), а также алгоритм MDA RSA (определенный в Интернете RFC 1321).

Существует один метод конструктора, названный для каждого типа хэша. Все возвращают хеш-объект с одинаковым простым интерфейсом. Например: используйте sha1() , чтобы создать SHA1 хэш - объект.

 hash.sha1()

 

Конструкторы для алгоритмов хэширования, которые всегда присутствуют в этом модуле являются md5() , sha1() , sha224() , sha256() , sha384() , и sha512() .

Теперь вы можете кормить этот объект с произвольными строками , используя update() метод. В любой момент вы можете задать его для дайджеста конкатенации строк , подаваемых к нему до сих пор с помощью digest() или hexdigest() методы.

 hash.update(arg)

 

Обновите хеш-объект строкой arg. Повторные вызовы эквивалентны одному вызову с объединением всех аргументов: m.update (a); m.update (b) эквивалентно m.update (a + b).

 hash.digest()

 
 hash.hexdigest()

 

Аналогично digest (), за исключением того, что дайджест возвращается в виде строки двойной длины, содержащей только шестнадцатеричные цифры. Это может использоваться для безопасного обмена значениями в электронной почте или других недвоичных средах.

Вот пример:

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

или же:

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

алгоритм, предоставляемый OpenSSL

Обобщенный new() конструктор , который принимает имя строки требуемого алгоритма в качестве первого параметра также существует , чтобы обеспечить доступ к вышеперечисленным хэш, а также любым другим алгоритмам , что библиотека OpenSSL может предложить. Названные конструкторы гораздо быстрее , чем new() и должно быть предпочтительным.

Используя new() с помощью алгоритма , предоставленной OpenSSL:

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

Синтаксис

Параметры

Примечания

Еще от кодкамп
Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.