hashlib

Введение

Примеры

  • 0

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

    Вернуть дайджест строк, переданных методу update (). Это строка байтов digest_size, которая может содержать не-ASCII-символы, включая нулевые байты.

     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' 
  • 0

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

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

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

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

Синтаксис

Параметры

Примечания