2011-08-04 6 views
0

Javaを使用して1つの鍵で複数のパスワードを暗号化したい。私は鍵生成器を使用してパスワードを生成することができますが、毎回異なる鍵を生成します。 暗号化を行うキーは1つだけです。 1つの鍵で複数のパスワードを暗号化するにはどうすればよいですか? もう1つの問題は、アプリケーションを起動するたびに、アプリケーションを再起動した後に常に同じキーを使用することです。複数のパスワードを1つのキーで暗号化するにはどうすればよいですか?

+1

は、あなたはあなたが同じ時点で利用可能なすべてのパスワードを持っている場合にも明確にしてくださいすることができ – Martyn

+0

を実行しているコードを投稿することができますか?もしそうなら、私はtskuzzyの方法を使用します。 –

+0

はい私は自分のデータベースに同時にすべてのパスワードを持っています。 – kushal45

答えて

1

設定したパスフレーズに基づいてキーを生成すると、同じキーが与えられます(他のキー関連のパラメータがすべて同じ場合)。質問を編集して、使用したい暗号アルゴリズムの詳細を知ることができれば、私はもっと助けることができます。


編集:さて、ここでパスフレーズに基づいて、鍵を生成するためにいくつかのサンプルコードは、(同じキー各時刻を取得するように)です:

// 16 characters for 128-bit AES 
private final static String PASSPHRASE="myappspassphrase" 

SecretKeySpec key = new SecretKeySpec(PASSPHRASE.getBytes("UTF-8"), "AES"); 

... 

// Initialise the cipher 
Cipher encryptCipher = Cipher.getInstance("AES"); 
encryptCipher.init(Cipher.ENCRYPT_MODE, key); 
+0

はい、私もその方法で私を助けることができます。 – kushal45

+0

あなたの助けてくれてありがとうが、私は1つの関数で何を返すのですか? – kushal45

+0

このコードを使用すると、byte []が返されます。それから私はこのバイト[]を文字列に変換し、それは私のような出力を与える??いくつかのbxes。今何をすべきか教えてください。 – kushal45

1
  1. キーk
  2. ループを生成しますあなたのパスワードを使って(p
  3. pkで暗号化します。選択した暗号化方式を使用します。

今だけgenerateKey()定義し、encrypt(String password, String key)

String key = generateKey(); 
String[] encrypted = new String[passwords.length]; 

for(String password : passwords) 
    encrypted = encrypt(password, key); 
+0

ここに実行可能コードを与えることはできますか?私はまだclearkey.Because generatekey()私は毎回私はアプリケーションを実行すると思うです。だから鍵は変わるかもしれない。 – kushal45

関連する問題