Python を使用していくつかのファイルを暗号化したいのですが、標準/有名な Python ライブラリを使用して gpg/pgp を使用できる最良の方法は何ですか?
6 に答える
PyCryptoがベストのようです。
KeyCzarを試す
実装は非常に簡単です。
私は GPGme を使用していますGPGmeの主な強みは、OpenPGP 標準 ( RFC 4880 ) でファイルを読み書きできることです。これは、他の PGP プログラムと相互運用したい場合に重要です。
Python インターフェースを備えています。警告: これは低レベルのインターフェースであり、あまり Pythonic ではありません。
フランス語を読む場合は、例を参照してください。
署名を確認するための1つを次に示します。
signed = core.Data(sys.stdin.read())
plain = core.Data()
context = core.Context()
context.op_verify(signed, None, plain)
result = context.op_verify_result()
sign = result.signatures
while sign:
if sign.status != 0:
print "BAD signature from:"
else:
print "Good signature from:"
print " uid: ", context.get_key(sign.fpr, 0).uids.uid
print " timestamp: ", sign.timestamp
print " fingerprint:", sign.fpr
sign = sign.next
私はpyOpenSSLを使用します。これは、 OpenSSLの python バインディングであり、長い間使用されており、非常によくテストされています。私は自分のアプリケーションのベンチマークをいくつか行いましたが、これは非常に暗号を多用し、pyCrypto に勝っていました。YMMV。
PyCrypto の機能への優れたインターフェイス セットを提供するGoogle のKeyczarプロジェクトを参照してください。
私は pyDes ( http://twhiteman.netfirms.com/des.html ) が好きです。これは最速ではありませんが、純粋な Python であり、少量の暗号化されたデータに対して非常にうまく機能します。