2011-06-19 7 views
4

私はDESで暗号化と復号化の両方を行うプログラムを書いています。暗号化処理中に使用されたのと同じキーを使用して、正しく復号化する必要がありますか?私の問題は、暗号化と復号化が異なるマシン上で実行されることです。これは、暗号化プロセス中に鍵が生成される方法です。後でKeyGeneratorで生成されたキーの使い方は?

SecretKey key = KeyGenerator.getInstance("DES").generateKey(); 

私はファイルにキーを書き込むと思っていました。しかし、SecretKeyオブジェクトを文字列に型キャストすることはできますが、逆もできます。では、テキストファイルに含まれているキーをどのように抽出するのですか?この声明の入力として渡しますか?

decipher.init(Cipher.DECRYPT_MODE, key, paramSpec); 

また、暗号化と復号化プロセスの両方でユーザーからの入力としてキーを受け取ることは可能ですか?後に続いて

SecretKey key = KeyGenerator.getInstance("DES").generateKey(); 
byte[] encoded = key.getEncoded(); 
// save this somewhere 

byte[] encoded = // load it again 
SecretKey key = new SecretKeySpec(encoded, "DES"); 

をしかし、(それが比較的容易bruteforcedすることができます)DESが今日安全でないであることを忘れないでください

答えて

10

はこれを行います。代わりにAESを使うことを強く考えてください(単に "DES"を "AES"に置き換えてください)。

+0

+1シンプルだが非常に効果的な情報.......... –

関連する問題