2011-12-04 11 views
0

私は次のプロパティを提供して文字列を暗号化および復号化するためのライブラリを探しています:シンプルな暗号化/復号化

  • 暗号化モードのブロックまたはストリームを使用して、それ以外にも、私はへの無関心ですアルゴリズム。
  • 既知のテキスト暗号化攻撃を可能にするのに十分な、小さい長さの鍵をサポートする必要があります。
  • パディングの決定などの低レベルの暗号化問題を処理できることが望ましい。たとえば、

は:

string Encrypt(int key, string messageToBeEncrypted) // returns cipher 
string Decrypt(int key, string messageToBeDecrypted) // returns message 
+0

'mcrypt'は非常に使いやすいです。パディングはありませんが、PKCSパダーを書くのは簡単です。 –

+1

[mcrypt用のmy C++ラッパー](http://pastebin.com/Lm8jEacd)です。 –

+1

非常に使いやすいように設計されたGoogleが作成したライブラリがあります。私はリンクを失った。 – Omnifarious

答えて

2

意図的に弱い暗号を使用するライブラリはありません(また、短い鍵サイズのすべての暗号は設計上弱い)。

しかし、通常の暗号化ライブラリを使用して、これを囲むラッパーを使用することで、intの値を正しいサイズのキーに変換することができます。単純にゼロパディングします(または、正しい出力でハッシュ関数を呼び出すサイズ)。

業界標準の強力な暗号ではなく、弱い暗号を使用していることをお客様に伝えていただければ幸いです。

+0

[Crypto ++](http://www.cryptopp.com)には、安全でないか、古くなっている暗号化アルゴリズムとハッシュアルゴリズムが実装されています。良いことは、それらが 'Weak'ネームスペースで定義されており、明示的に' #define CRYPTOPP_ENABLE_NAMESPACE_WEAK 1'する必要があります – Anthony

2

OpenSSLと何が問題なのですか?これは標準的なアルゴリズムの実装を持っています。例えば、DESの実装をgoogleするだけでよいのです。たとえば、利用可能なオープンソースがたくさんあります。

+0

OpenSSLを低レベルの暗号化プリミティブに使用することは、チーズをスライスするために工業用チョッピングマシンで掘削してブレードを抽出しようとするようなものです。それはかなりうまく設計されていないインターフェースです。私は、その使用の複雑さが、それを使用しようとするとエラーを起こす可能性が高いと感じています。私は、実際には、「行き先」のソリューションとしてアプリケーションのセキュリティを取り戻すと感じています。 – Omnifarious

1

Crypto++は、あらゆる種類の暗号化(対称および非対称)およびハッシュおよびその他の便利な機能を実行できる非常に一般的なライブラリです。