Шифрование данных вручную: PyCrypto

shifrovanie dannyh vruchnuju pycrypto Сервер PyMailCGI

Среди сторонних разработок можно найти множество свободно доступных инструментов шифрования, включая популярный набор инструментов Python Cryptography Toolkit, известный также как PyCrypto. Этот пакет содержит модули, реализующие алгоритмы шифрования с открытым и закрытым ключом, такие как AES, DES, IDEA и RSA, предоставляет модуль Python для чтения и расшифровывания файлов PGP и многие другие. Ниже приводится пример использования шифрования по алгоритму AES после установки PyCrypto в Windows на моем компьютере:

>   >> from Crypto.Cipher import AES

>   >> AES.block_size = 16

>   >> mykey = pymailcgi‘.ljust(16, ‘-‘) # ключ должен быть 16, 24 или 32 байта

>   >> mykey

‘pymailcgi

>>> 

>   >> password = ‘Already got one.’ # длина должна быть кратна 16

>   >> aesobj1 = AES.new(mykey, AES.MODE_ECB)

>   >> cyphertext = aesobj1.encrypt(password)

>   >> cyphertext

‘\xfez\x95\xb7\x07_"\xd4\xb6\xe3r\x07g~X]’

>>> 

>   >> aesobj2 = AES.new(mykey, AES.MODE_ECB)

>   >> aesobj2.decrypt(cyphertext)

‘Already got one.’

Этот интерфейс напоминает интерфейс модуля rotor, но в нем используются более совершенные алгоритмы шифрования. Алгоритм AES — это популярный алгоритм шифрования с закрытым ключом. Он требует наличия ключа фиксированной длины и строку данных с длиной кратной 16 байтам.

К сожалению, этот пакет не является частью стандартной библиотеки Python, его распространение в двоичной форме может регулироваться законом США (и других стран) о контроле за экспортом, а описание его — это слишком большая и сложная тема для этой книги. Все это делает его не таким универсальным, как хотелось бы. По крайней мере, распространение двоичной программы установки вместе с примерами этой книги может оказаться не совсем законным. А поскольку шифрование данных является одной из базовых потребностей PyMailCGI, зависимость от внешнего инструмента может оказаться слишком сильной.

Однако самый главный фактор, препятствующий использованию Py- Crypto в этой книге, заключается в том, что этот пакет поддерживает только Python 2.X и пока еще не вышла версия для Python 3.X. Это обстоятельство делает невозможным использование пакета в примерах для данной книги. Однако, если у вас появится возможность установить пакет PyCrypto и разобраться в нем, это может стать мощным решением проблемы. Дополнительную информацию о PyCrypto ищите в Интернете.

Использованная литература:

Марк Лутц — Программирование на Python, 4-е издание, II том, 2011

Каталог сайтов Всего.ру
Оцените статью
Секреты программирования
Добавить комментарий