Документация Python неофициальный перевод

sha.md

54 строк · 4.5 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/sha.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 14.4. [`sha`](https://python-all.ru/2.7/library/sha.html#module-sha) – алгоритм дайджеста сообщений SHA-189Устарело с версии 2.5: Вместо этого используйте модуль [`hashlib`](https://python-all.ru/2.7/library/hashlib.html#module-hashlib).1011Этот модуль реализует интерфейс к защищённому хэш-алгоритму NIST, известному как SHA-1. SHA-1 – улучшенная версия исходного хэш-алгоритма SHA. Он используется аналогично модулю [`md5`](https://python-all.ru/2.7/library/md5.html#module-md5): вызов [`new()`](https://python-all.ru/2.7/library/new.html#module-new) создаёт объект sha, затем в этот объект передаются произвольные строки методом `update()`, и в любой момент можно запросить *дайджест* конкатенации всех переданных на данный момент строк. Дайджесты SHA-1 имеют длину 160 бит, в отличие от 128 бит у MD5.1213#### `sha.new([string])`1415Возвращает новый объект sha. Если передан *string*, то выполняется вызов метода `update(string)`.1617Следующие значения предоставляются как константы в модуле и как атрибуты объектов sha, возвращаемых [`new()`](https://python-all.ru/2.7/library/new.html#module-new):1819#### `sha.blocksize`2021Размер блоков, подаваемых на хэш-функцию; всегда равен `1`. Этот размер используется для того, чтобы можно было хэшировать произвольную строку.2223#### `sha.digest_size`2425Размер результирующего дайджеста в байтах. Всегда равен `20`.2627Объект sha имеет те же методы, что и объекты md5:2829#### `sha.update(arg)`3031Обновить объект sha строкой *arg*. Повторные вызовы эквивалентны одному вызову с конкатенацией всех аргументов: `m.update(a); m.update(b)` эквивалентно `m.update(a+b)`.3233#### `sha.digest()`3435Возвращает дайджест строк, переданных методу [`update()`](https://python-all.ru/2.7/library/sha.html#sha.sha.update) на данный момент. Это 20-байтовая строка, которая может содержать не-ASCII символы, включая нулевые байты.3637#### `sha.hexdigest()`3839Как [`digest()`](https://python-all.ru/2.7/library/sha.html#sha.sha.digest), но дайджест возвращается в виде строки длиной 40, содержащей только шестнадцатеричные цифры. Это может использоваться для безопасного обмена значением по электронной почте или в других не-двоичных средах.4041#### `sha.copy()`4243Возвращает копию («клон») объекта sha. Это может использоваться для эффективного вычисления дайджестов строк, имеющих общую начальную подстроку.4445> **См. также**46>47> **[Secure Hash Standard](https://python-all.ru/2.7/library/sha.html)**48>49> Алгоритм Secure Hash определяется документом NIST FIPS PUB 180-2: [Secure Hash Standard](https://python-all.ru/2.7/library/sha.html), опубликованным в августе 2002 года.50>51> **[Cryptographic Toolkit (Secure Hashing)](https://python-all.ru/2.7/library/sha.html)**52>53> Ссылки от NIST на различные сведения о защищённом хэшировании.54