3

BlowfishデータをCBCストリームにエンコードするには、OpenSSLの暗号化機能にアクセスする必要があります。私はグーグルで検索し、いくつかのBlowfishライブラリ(手書き)といくつかのOpenSSLラッパー(どれも完全ではないようです)を見つけました。

最後に、コマンドの完全なblowfish.hライブラリなど、特定のOpenSSL関数にアクセスする必要があります。それらにアクセスするためのpythonic/正しい方法は何ですか?SWIGのようなものを使用してPython/Cバインディングを許可しますか、それともより良い方法がありますか?

ありがとう!

4

6 に答える 6

5

Python で C (および C++) とやり取りする方法はたくさんあります。ctypes は簡単な小さな拡張には非常に便利ですが、コンパイル時のエラーを実行時のセグメンテーション違反に変える癖があります。独自の拡張機能を作成する場合は、SIP が非常に便利です。SWIG は非常に一般的ですが、より多くのフォロワーがいます。もちろん、最初に行うべきことは、本当にインターフェースが必要かどうかを確認することです。PyCrypto を見たことがありますか?

于 2009-01-08T03:08:23.163 に答える
5

ctypesが出発点です。C で宣言された型などを使用して、DLL を呼び出すことができます。必要なすべてのことを実行できない制限があるかどうかはわかりませんが、非常に有能であり、標準ライブラリに含まれています。

于 2009-01-08T01:48:17.273 に答える
0

M2Cryptoもお勧めしますが、joeforkerによるコードサンプルが少し奇妙に見える場合は、Blowfishを含むM2Crypto暗号ユニットテストを理解するのが簡単かもしれません。test_evp.pyのCipherTestCaseを確認してください。

于 2009-02-07T00:11:19.243 に答える
0

SWIG はほとんど標準的な方法です。うまくいきます。

于 2009-01-08T01:59:23.210 に答える
0

私はCythonでも成功しました。

于 2009-01-09T20:37:31.977 に答える