2008-09-08 6 views
5

少なくとも128ビットの鍵で暗号化して、機密データを保存する必要があります。私はjavax.cryptoパッケージを調査したところ、 PBEWithMD5AndDESまたはPBEWithSHA1AndDESedeのような特定のCipher名があり、56ビットと80ビット(http://en.wikipedia.org/wiki/DESede)までの暗号化を提供しています。Javaを使用した128ビットデータ暗号化

私は他の人の投稿を参照しましたが、主にRSAを使用しています。私の理解では、RSAは一般に通信データの暗号化に適しています。私の必要性は異なります。データを保存して、それを復号化して戻すだけです。したがって、私は秘密と公開鍵のペアを必要としません。

ご迷惑をおかけして申し訳ありません。

答えて

8

Advanced Encryption Standard(AES)を使用してください。 128,192、または256ビットのキー長をサポートしています。

algorithmは単純です。 Sun Java WebサイトにはJavaでsection explaining how to do AESの暗号化があります。ウィキペディアから

...

...また、Rijndaelのよう 知られている高度な 暗号化規格(AES)は、米国 政府によって暗号化規格として を採用したブロック暗号です。とても経験則として、あなたがになっていません...その 前身、データ暗号化 規格(DES)の場合と同様に

を広く を分析されており、現在世界中で使用され、 DESまたはその変種を段階的に使用しているため使用してください。

今のところ、AESを使用する方が良いです。 Twofish,Blowfishなどのオプションもあります。 TwofishはBlowfishの高度なバージョンと考えることができます。

3

JDK用の無制限のJCEポリシーファイルをダウンロードしてインストールする必要があります。 JDK 6の場合は、一番下にhttp://java.sun.com/javase/downloads/index.jspにあります。

+0

それが唯一のAES-192または256のために必要ではないですか?私は、AES-128は無制限のJCEポリシーファイルを必要としないと信じています。 – halluc1nati0n

0

私は暗号の専門家ではありません(塩水でこの提案をしてください)が、私は以前にBlowfishを使用していました。同じ男の新しいアルゴリズムTwofishもあります。

ここにはwebsite with a Java implementationがありますが、ライセンスには注意してください(非営利目的では無料です)。そのリンクはBruce Schneier's website(両方のアルゴリズムの作成者)からも見つかります。

+0

「Java実装のWebサイト」のリンクが無効です。 plzはそれを更新します... – vettipayyan

2

3つの異なる返信を組み合わせると、正解と思います。

Bouncycastleから暗号ライブラリをダウンロードすると、Oracleから「無制限強度管轄ポリシー」をダウンロードする必要があります(ファイルはダウンロードページの下にあります)。インストール方法については、Readmeファイルを必ずお読みください。

これを実行し、Bountycastleパッケージに付属のサンプルコードを使用すると、データを暗号化できるはずです。あなたは112ビットのキー(しばしば128ビットと呼ばれますが、そのうち112ビットは実際に安全です)を与えるトリプルDES実装、または前述のようにAESを使用することができます。私のお金はAESになります。

+0

ヘッドアップ:BounCycastle、BounTycastleではありません – lImbus

0

マイケルさん、JCEで多くのことを試してみたのですが、ついに私はバウンシーキャスルに着いた。

JCEは、暗号化のためのAESとパスワードベースの暗号化のためのPBEをサポートしていますが、両方の組み合わせをサポートしていません。私は同じことを望んでいたし、私はバウンシーキャスルで見つけた。

例はである:http://forums.sun.com/thread.jspa?messageID=4164916

関連する問題