MicroPython:Библиотеки/uhashlib

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


uhashlib – алгоритмы хэширования[1]

В этом модуле реализована часть функционала соответствующего модуля CPython. Более подробно читайте в документации к CPython о модуле hashlib.

В этом модуле реализованы алгоритмы хэширования двоичных данных. Перечень доступных алгоритмов зависит от используемой платы. В число алгоритмов, которые могут быть реализованы в MicroPython-порте, входят:

  • SHA256 – современный алгоритм хэширования текущего поколения из семейства SHA-2. Подходит для ситуаций, где требуется криптостойкость. Входит в ядро MicroPython и рекомендуется для использования на всех платах, кроме случаев, где этому мешают ограничения по размеру кода.
  • SHA1 – алгоритм предыдущего поколения. Сейчас использовать его не рекомендуется, но SHA1 – это часть большого количества интернет-стандартов и приложений, поэтому этот алгоритм, скорее всего, будет реализован в платах, чей функционал направлен на работу в сети и взаимосовместимость.
  • MD5 – устаревающий алгоритм, который не считается криптостойким. Он используется лишь на небольшом количестве плат, направленных на взаимосовместимость с устаревающими приложениями.

Конструкторы

  • Класс uhashlib.sha256([data]) – создает объект SHA256-хэшера и опционально «скармливает» ему данные, заданные в аргументе data.
  • Класс uhashlib.sha1([data]) – создает объект SHA1-хэшера и опционально «скармливает» ему данные, заданные в аргументе data.
  • Класс suhashlib.md5([data]) – создает объект MD5-хэшера и опционально «скармливает» ему данные, заданные в аргументе data.

Методы

  • hash.update(data) – добавляет больше двоичных данных в хэш.
  • hash.digest() – возвращает хэш для всех данных, пропущенных через хэш-алгоритм, в виде объекта bytes. После вызова этого метода в хэш больше нельзя будет добавлять новые данные.
  • hash.hexdigest() – этот метод НЕ РЕАЛИЗОВАН. Чтобы достичь такого же эффекта, используйте ubinascii.hexlify(hash.digest()).

<syntaxhighlight lang="python" enclose="div">

См.также

Внешние ссылки