私はインターネットから入手したJava文字列暗号化/復号化クラスを実行しています!ここに少しの変更を加えたクラスがあります:異なる出力を生成する文字列暗号化/復号化クラス
public class EncrypterDecrypter { 暗号のecipher; 暗号dcipher;
EncrypterDecrypter(SecretKey key)
{
try {
ecipher = Cipher.getInstance("DES");
dcipher = Cipher.getInstance("DES");
ecipher.init(Cipher.ENCRYPT_MODE, key);
dcipher.init(Cipher.DECRYPT_MODE, key);
} catch (javax.crypto.NoSuchPaddingException e) {
} catch (java.security.NoSuchAlgorithmException e) {
} catch (java.security.InvalidKeyException e) {
}
}
}
パブリッククラスEncryptionTester {
public static void main(String[] args)
{
try
{
//Generate a temporary key.
SecretKey key = KeyGenerator.getInstance("DES").generateKey();
//Create Encrypter/Decrypter class
EncrypterDecrypter crypto = new EncrypterDecrypter(key);
//More lines of code to use crypto object
}
catch (Exception e)
{
}
}
}
私の問題は、私はEncrypterDecrypterクラスの新しいインスタンスを作成するたびに、私はまだ文字列を暗号化貴様を得るということです暗号化する文字列はまだ同じです!私の心は、新しいインスタンスが作成されるたびに変更され続けるSecretKeyオブジェクトが問題であることを私に伝えます。Encrypter/Decrypterクラスのすべてのインスタンスに対してSecretKeyオブジェクトをどのようにすることができるかを知りたいと思います問題の原因!
投稿する関連するコードは 'EncrypterDecrypter'オブジェクトを初期化ラインであろう。あなたは 'キー'のために何を渡していますか? – dlev
あなたは正しいです、私はコードを修正しました!私はDESキーのアルゴリズムを渡しています! – Xris