Рекомендуемый криптографический модуль Python?

Почему бы не преобразовать строку в целое число формы YYYYMMDDHHMMSS? Каждое приращение времени создавало бы большее целое число, и вы могли бы фильтровать целые числа, а не беспокоиться о преобразовании в время ISO.

30
задан hewhocutsdown 18 August 2009 в 02:19
поделиться

4 ответа

Если вы работаете в среде, которая включает GnuPG и Python> = 2.4, вы также можете рассмотреть такой инструмент, как python-gnupg . (Заявление об отказе от ответственности: я сопровождаю этот проект.) Он оставляет тяжелую работу gpg и предоставляет довольно простой API.

Обзор API:

>>> import gnupg
>>> gpg = gnupg.GPG(gnupghome='/path/to/keyring/directory')
>>> gpg.list_keys()

[{
  ...
  'fingerprint': 'F819EE7705497D73E3CCEE65197D5DAC68F1AAB2',
  'keyid': '197D5DAC68F1AAB2',
  'length': '1024',
  'type': 'pub',
  'uids': ['', 'Gary Gross (A test user) ']},
 {
  ...
  'fingerprint': '37F24DD4B918CC264D4F31D60C5FEFA7A921FC4A',
  'keyid': '0C5FEFA7A921FC4A',
  'length': '1024',
  ...
  'uids': ['', 'Danny Davis (A test user) ']}]
>>> encrypted = gpg.encrypt("Hello, world!", ['0C5FEFA7A921FC4A'])
>>> str(encrypted)

'-----BEGIN PGP MESSAGE-----\nVersion: GnuPG v1.4.9 (GNU/Linux)\n
\nhQIOA/6NHMDTXUwcEAf
...
-----END PGP MESSAGE-----\n'
>>> decrypted = gpg.decrypt(str(encrypted), passphrase='secret')
>>> str(decrypted)
'Hello, world!'
>>> signed = gpg.sign("Goodbye, world!", passphrase='secret')
>>> verified = verified = gpg.verify(str(signed))
>>> print "Verified" if verified else "Not verified"

'Verified' 
13
ответ дан 27 November 2019 в 22:11
поделиться

Как насчет PyCrypto (ранее http://www.amk.ca/python/code/crypto.html ) ??

2
ответ дан 27 November 2019 в 22:11
поделиться

pycrypt на самом деле представляет собой простой модуль шифрования / дешифрования AES, построенный на основе pycrypto , как и другие упомянутые вами модули - обратите внимание, что последний переходит на pycrypto URL-адрес .org, поскольку он меняет разработчиков, а стабильные версии и документация все еще находятся на сайте автора . Помимо упомянутых вами более простых в использовании оболочек, одним из преимуществ pycrypto является то, что его подмножество на чистом питоне поставляется с Google App Engine, поэтому знакомство с ним будет полезно, если вы когда-нибудь хотите разместить там какой-либо код.

Основная альтернатива (еще один мощный и сложный проект, например pycrypto) - это pyopenssl , который представляет собой довольно обычную оболочку («тонкая оболочка», как описывает автор) OpenSSL (это может быть плюсом, если вы привыкли кодировать на C с вызовами OpenSSL). Альтернативная упаковка, полная (поставляется с необходимыми библиотеками) и, возможно, более безопасная с юридической точки зрения (за исключением частей, в отношении которых есть патентные споры или сомнения) распространяется egenix .

Оба основных проекта (pycrypto и pyopenssl) пережили длительные периоды более или менее бездеятельности, поскольку первоначальные авторы переходили к другим вещам, но оба активно развиваются и снова поддерживаются, что всегда является хорошим признаком.

Я не знаю простых в использовании оболочек на на вершине pyopenssl (скорее всего, есть, но они не были опубликованы, как те, что на вершине pycrypto), и поэтому, если, как кажется, вы заботитесь о простоте использования и не хотите сами писать оболочки,

8
ответ дан 27 November 2019 в 22:11
поделиться

Я только что провел такой опрос на прошлой неделе и принял M2Crypto, который на сегодняшний день кажется самой продвинутой оболочкой. выше openssl (нашел его в нескольких списках рекомендаций при поиске в Google). Я также пробовал pycrypto, но в нем отсутствуют управление сертификатами и стандартное управление форматами файлов ключей, которые есть в M2Crypto (с pycrypto вы должны выделять / удалять ключи или писать свой собственный менеджер ключей для распространенных форматов).

Я обнаружил, что M2Crypto было довольно легко использовать использовать и быстро смог разработать то, что мне было нужно (подписанный и зашифрованный формат пакета).

Однако я рекомендую загрузить полный пакет, а не просто установить его, потому что в пакете вы также получаете хорошие примеры (посмотрите демо-каталог

Вот ссылка http://pypi.python.org/pypi/M2Crypto/0.20. 1

Недостатком может быть то, что вы используете python 3.0, я застрял с 2.5 на работе (надеюсь, скоро будет 2.6) и не знаю, работает ли M2Crypto с python 3.0

Я мало практиковался с ним пока ставьте, если у вас с ним конкретные проблемы просто спросите здесь. Кто-нибудь может ответить.

3
ответ дан 27 November 2019 в 22:11
поделиться
Другие вопросы по тегам:

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