2011-10-24 13 views
0

次のプロジェクトは、CryptoC++を使用していますが、より優れたライブラリが公開されています。私は電子メールデータを暗号化/エンコードし、それを送信し、次に相手側で復号化して、特権ユーザーが電子メールを読むことができるようにする必要があります。安全に暗号化して解読できる方法/アルゴリズム/ライブラリ

私のオリジナルのアイデアは、SHA256を使用して電子メールのテキストを暗号化することでした(たとえば「MYKEY」)。しかし、私はハッシュが何であるか完全に理解していないと思う。私はSHA256またはMD5またはAESで暗号化された文字列を解読することは不可能だと理解していますが、特別なキー( "MYKEY")で文字列を暗号化すれば、特殊キーを知っている限り解読できます。あれは正しいですか?

私が暗号化/電子メールテキストをエンコードするタスクを達成するために使用できるライブラリ、アルゴリズム、または方法を提案できない場合は、&は、私が解読することができる鍵または共有秘密を持っていれば解読できますデータ?

答えて

2

に専用の記事を有すること

は暗号化アルゴリズムではありません。良いハッシュ関数は、生成されたハッシュに合ったメッセージを復元する方法がありません(可能なすべてのメッセージを試して同じハッシュを与えるかどうかを調べる以外に)。 (また、ハッシュ関数は固定サイズの出力を持ちますが、可変サイズの入力を持っています。つまり、同じハッシュを与えるメッセージがたくさんあります。同じハッシュを与える1組のメッセージやメッセージ)指定されたハッシュに対して)

暗号化アルゴリズムが必要です。おそらく非対称暗号化(公開鍵を使って暗号化し、秘密鍵を復号化する)は良い考えです。

新しい暗号化データ形式またはプロトコルを発明しないでください。あなたは間違いを犯し、製品を安全にしません。

電子メールの暗号化には、OpenPGP(RFC 4880)またはS/MIME(RFC 3851)のいずれか、またはこれらのサブセットのいずれかを使用します。

必要なアルゴリズムをサポートするライブラリ、またはこれらのファイル形式をサポートするライブラリを使用できます。

1

SHA256とMD5は双方向関数です。即ち、解読はない。ハッシングhttp://en.wikipedia.org/wiki/Cryptographic_hash_functionを参照してください。

しかし、安全な通信を作成する前に、実際に暗号化手順を読む必要があります。 (これらは両方とも対称暗号の領域で計数しているが)言われてウィキペディアはキャプテンキリン、ハッシュアルゴリズムで述べたように実装http://en.wikipedia.org/wiki/AES_implementations

関連する問題