Как шифровать данные в Python 3.3?

Здравствуйте. У меня возникла следующая проблема - необходимо зашифровать строки на Paython. Просто XOR в данном случае не очень уместен, поэтому я попытался нагуглить AES или Blowfish. Но к сожалению библиотека PyCrypto написана на старой версии Пайтона, blowfish тоже. Может ли кто-нибудь подсказать библиотеки для шифрования данных для Пайтона 3.3?
  • Вопрос задан
  • 13273 просмотра
Пригласить эксперта
Ответы на вопрос 5
ntkt
@ntkt
Потомственный рыцарь клавиатуры и паяльника
PyCrypto поддерживает python 3.3.
https://pypi.python.org/pypi/pycrypto
PyCrypto is written and tested using Python version 2.1 through 3.3. Python 1.5.2 is not supported.

Может быть, у Вас винда и не собралось сразу из-за stackoverflow.com/questions/13787258/pycrypto-inst... ? Но там и решение указано (либо брать недоверенный бинарник с просторов интернета, либо же собирать из-под mingw).

Не получится -- тогда попробуйте биндинги к OpenSSL (pyOpenSSL https://github.com/pyca/pyopenssl)
Ответ написан
Комментировать
f0xice
@f0xice
Если ещё актуально и другим в помощь, попробуйте простое RSA на Python
https://pypi.python.org/pypi/rsa
После загрузки приступаем к шифрованию:
import rsa
(pubkey, privkey) = rsa.newkeys(512)
 
message = b'Hello Blablacode.ru!'
 
# шифруем
crypto = rsa.encrypt(message, pubkey)
print(crypto)
#расшифровываем
message = rsa.decrypt(crypto, privkey)
print(message)

Генерировать каждый раз пару ключей Вам не понадобится. Нужно просто сохранить их в удобном месте.
Вывод программы:
$ python3 rsa_test.py
b'\x19\xd1\xbb\xf8N\xb7\xa8F\xf2\x19\xaa\xd1\x17\x868\xbcn\xc8\x85\xd4r\x81\xdaK\x0f\x80\xee1P\xdd\xdcV5\xed\x12\xf6S\x7f\xd7&f\x9e\xdawC\x038\xbb\xbaX\x8ae\x18\xeaR\x12E\r\x90\xc5c\x18\xd4\r'
b'Hello Blablacode.ru!'

Источник
Ответ написан
@devel787
Можете попробовать cryptography.
cryptography is a package designed to expose cryptographic recipes and primitives to Python developers. Our goal is for it to be your "cryptographic standard library". It supports Python 2.6-2.7, Python 3.2+, and PyPy.


Ссылки:
'Alex Gaynor -- Why Crypto' -- alexgaynor.net/2014/feb/12/why-crypto
Docs -- https://cryptography.io/en/latest/#
PyPI -- https://pypi.python.org/pypi/cryptography
Ответ написан
Комментировать
@daniel1 Автор вопроса
c PyCrypto на Mac ничего не вышло. error: no commands supplied.
Last login: Tue Feb 25 21:23:02 on ttys000
MacBook-Air-Danila:~ danilausacev$ cd '/Users/danilausacev/Downloads/pycrypto-2.6.1/' && '/usr/bin/pythonw' '/Users/danilausacev/Downloads/pycrypto-2.6.1/setup.py' && echo Exit status: $? && exit 1
usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: setup.py --help [cmd1 cmd2 ...]
or: setup.py --help-commands
or: setup.py cmd --help

error: no commands supplied
MacBook-Air-Danila:pycrypto-2.6.1 danilausacev$ python setup.py test
running test
Traceback (most recent call last):
File "setup.py", line 456, in
core.setup(**kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 152, in setup
dist.run_commands()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 953, in run_commands
self.run_command(cmd)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 972, in run_command
cmd_obj.run()
File "setup.py", line 321, in run
from Crypto import SelfTest
ImportError: No module named Crypto
MacBook-Air-Danila:pycrypto-2.6.1 danilausacev$
Ответ написан
Комментировать
@daniel1 Автор вопроса
C Cryptography та же хрень. Нужен сначала Homebrew, потом Pip, потом только можно установить. Homebrew я поставил, а с пипом проблемы. Советую ставить его через Python. Теперь у меня на Маке со 128 гб 3 установленных питона. Весело.
В итоге решил ограничиться вот этим - habrahabr.ru/post/212235
И с этим тоже ничего не вышло.
Если кто-нибудь подскажет мне работающую библиотеку(а желательно даже 1 скрипт), позволяющий шифровать данные, я буду очень благодарен
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы