AES 256暗号化に使用する(純粋な)Pythonライブラリは何ですか? [閉まっている]
-
05-07-2019 - |
質問
AES 256暗号化と復号化を行う(できれば純粋な)Pythonライブラリを探しています。
このライブラリはCBC暗号モードをサポートし、PKCS7パディングを使用する必要があります according以前の私の質問への答え。
ライブラリは少なくともMac OS X(10.4)およびWindows XPで動作するはずです。理想的には、プロジェクトのソースディレクトリにドロップするだけです。 Josh Davisによるこれを見たことがありますが、それがどれだけ良いのか、それがどうか必要なCBC暗号モードを実行します...ソースをスキャンすると、そうでないことが示唆されます。
解決
PyCrypto があなたにぴったりです。
他のヒント
https://github.com/caller9/pythonaes
これはPKCS7パディングを備えた純粋なPythonです。 CBC、CFB、およびOFBモードをサポートします。
問題は、Pythonがこのタイプのものに対して超高速ではないことです。 serprexのフォークからのコードは少しわかりにくいですが、あらゆる種類のトリックを使用してPythonの最後のすべての速度を絞るため、私のものよりはるかに高速です。
ただし、これに最適なライブラリはコンパイルされ、SSE / MMXのものにフックされます。
また、IntelはCore(tm)チップのライン以来、AES命令でベーキングしています。
どのアーキテクチャ、クロスプラットフォーム、および3.xおよび2.7でも実行できるように、真の純粋なPythonバージョンを入手するためにバージョンを書きました。
同じものを検索するときにこの質問を見つけたので、リストに別の質問を追加します:
SlowAES –
http://code.google.com/p/slowaes/
他の人々の助けを借りた、Josh Davisのコードの開発です。うまくいくようです。
ncrypt はどうですか。純粋なpythonではありませんが、結果としてはるかに高速です。それは基本的にOpenSSLの素晴らしいpythonラッパーなので、その背後に高品質のコードがあることを知っています。
PyCryptoは明らかにpythonicではないため、一部のプラットフォーム(AIX、HP-UXなど)でコンパイルする際に問題が発生する可能性があります