Стандартная библиотека Python
Материал из Википедии — свободной энциклопедии
Богатая стандартная библиотека является одной из привлекательных сторон языка программирования Python. Здесь имеются средства для работы со многими сетевыми протоколами и форматами интернета, например, модули для написания HTTP-серверов и клиентов, для разбора и создания почтовых сообщений, для работы с XML и т. п. Набор модулей для работы с операционной системой позволяет писать кросс-платформенные приложения. Существуют модули для работы с регулярными выражениями, текстовыми кодировками, мультимедийными форматами, криптографическими протоколами, архивами, сериализации данных, поддержка юнит-тестирования и др.
[править] Сервисы периода исполнения
[править] Взаимодействие с ОС
[править] Обработка текстов
[править] Форматы данных
[править] Криптографические модули
В силу различных причин (в том числе политических — во многих странах запрещена разработка и распространение криптографического програмного обеспечения без разрешения соответствующих государсвенных структур) поддержка криптографии в стандартной библиотеке Python весьма ограниченна и сводится к хеш-функциям .
В версии 2.5 структура крипто библиотеки была унифицирована — все хеш функции собраны в модуль hashlib
и удалены бесполезные модули некриптостойкого шифрования. Ранние модули md5,hmac,sha
объявлены устаревшими и будут удалены в одном из последующих релизов.
Как и в некоторых других случаях ( DB-API, Python Web Server Gateway Interface) при невозможности (или нецелесообразности) включить полноценную поддержку технологии в стандартную библиотеку были приняты стандарты на интерфейсы, предоставляемые внешними библиотеками - API для хеш-функций, API для блочных шифров. Однако далеко не все библиотеки соответствуют этим требованиям (либо в силу старости — созданы до написания CryptoAPI, либо из-за того что являются автоматически сгенерированными обертками поверх соответствующих C библиотек).
Использовать Crypto API — совместимые библиотеки достаточно просто:
>>> import hashlib >>> m = hashlib.new('md5') # создаем новый хеширующий объект с MD5 функцией >>> m = hashlib.md5() # либо так >>> m.update("test data") # добавляем данные >>> m.digest() '\xebs:\x00\xc0\xc9\xd36\xe6V\x91\xa3z\xb5B\x93' >>> m.hexdigest() 'eb733a00c0c9d336e65691a37ab54293'
hashlib обеспечивает поддержку следующих хеш-функций : MD5,SHA1,SHA224,SHA256,SHA384,SHA512 (в сборках Python со включенной OpenSSL библиотекой этот список шире). Следует отметить что одно только присутствие алгоритма в стандартной библиотеке не гарантирует его криптографическую надежность. Так алгоритмы MD5,SHA1 по состоянию на начало 2007 года не являются криптостойкими (см. соответствующие wiki страницы).
Для шифрования приходится использовать сторонние библиотеки, например pycrypto(соответствует Crypto API) или M2Crypto (не соответствует Crypto API). Достаточно полный список представлен в pypi.