0

私は最近、テキストファイルを暗号化および復号化できるアプリケーションを作成しようとしていますが、キーやテキストファイルを転送することもできます。私のやや限られたJavaの知識をさらに深めるだけですが、私は一生の間、良いガイドやチュートリアルを見つけることができません。

私がしたいのは、暗号化キーを生成し、texfileをロードし、キーでファイルを暗号化し、キーを別のファイルに保存し、ファイルとキーを別のマシンに電子メールで送信し、キーをロードし、テキストファイルをロードし、復号化することですテキストファイル。

これには本当に秘密鍵や公開鍵などを使用する必要がありますか?私はそのセキュリティ、単なる実験、助け、ポインタについて心配していませんか?

4

3 に答える 3

3

いいえ、秘密鍵/公開鍵を使用する必要はありません。これは非対称暗号化によるものです。あなたがやろうとしているのは対称暗号化です。つまり、暗号化と復号化に同じキーが使用されます。

あなたの質問がどのように書かれているのか、私はあなたが暗号化について多くの知識を持っていないのではないかと思います.暗号、ストリーム暗号、ブロック暗号など)。

実装に関しては、暗号化アルゴリズムを選択する必要があります。たとえば、AES を使用することをお勧めします。これは、自分が何について話しているかを知っている人から頻繁に推奨されているためです (たとえば、「Practical Cryptography」という本も、詳細に興味がある場合は、これもよく読んでください!)。このようにしたい場合は、オンラインで利用できる多くの例があります。または、 SO のような質問を見てください

于 2012-05-22T10:17:28.930 に答える
1

公開鍵暗号化は、現在最も安全と考えられています。これは、安全なチャネルを介して「共有シークレット」を送信する必要がないためです。人々は公開鍵でしかデータを暗号化できませんが、それを解読するには秘密鍵が必要です。詳細については、Public-Key-Cryptography に関するウィキペディアのページを参照してください。

キーの取り扱いが簡単になると、暗号化自体のコストがかかります。一般に、公開鍵アルゴリズムは、対称アプローチと比べてパフォーマンスが劣ります。

公開鍵暗号化を回避したい場合は、AESなどの対称アルゴリズムを使用できます。

Google で簡単に検索すると、次のリンクが表示されました。

于 2012-05-22T10:15:56.340 に答える
0

暗号化APIを評価するときは、セキュリティを最重要事項として設計されていることを覚えておいてください(明らかに:)。つまり、書き込まれる機密情報のすべてのバイト、どこでも、特別な注意を払うということです。これには、パスワードとプレーンテキストの両方が含まれます。たとえば、フレームワークが文字列パスワードを受け入れる場合、Strincgが制御不能になり、ヒープ上に横たわっているため、セキュリティに違反します。char配列を受け入れる場合、クライアントは使用後に配列をゼロにすることができます。同じ原則に由来する他の多くの例がこれらのAPIで発生します。

于 2012-05-22T10:50:04.750 に答える