AHoernchen84
Grünschnabel
Hallo,
ich bin noch im Studium und da müssen ja ab und zu auch mal Aufgaben gemacht werden. Ich soll also zwei Strings die beide gleich sind unterschiedlich verschlüsseln. Das mache ich mittels AES/CBC. Dazu habe ich folgenden Code geschrieben:
Jetzt ist mein Problem, dass beide Strings gleich verschlüsselt werden, was doch eigentlich beim CBC-Mode nicht so sein sollte.
Hoffentlich kann mir da jemand weiterhelfen.
Viele Grüße
ich bin noch im Studium und da müssen ja ab und zu auch mal Aufgaben gemacht werden. Ich soll also zwei Strings die beide gleich sind unterschiedlich verschlüsseln. Das mache ich mittels AES/CBC. Dazu habe ich folgenden Code geschrieben:
Code:
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
String plaintext = "Hallo!";
String plaintext2 = "Hallo!";
byte[] input = plaintext.getBytes();
byte[] input2 = plaintext2.getBytes();
try {
KeyGenerator kgen = KeyGenerator.getInstance("AES", "BC");
kgen.init(128);
SecretKey secKey = kgen.generateKey();
Key key = new SecretKeySpec( secKey.getEncoded(), "AES" );
// Encryption.
Cipher cipher = Cipher.getInstance( "AES/CBC/PKCS7Padding", "BC" );
cipher.init(Cipher.ENCRYPT_MODE, key);
IvParameterSpec spec = cipher.getParameters().getParameterSpec(IvParameterSpec.class);
byte[] iv = spec.getIV();
byte[] cipherText = cipher.doFinal(input);
byte[] cipherText2 = cipher.doFinal(input2);
String s1 = new Base64().encodeBase64String( cipherText );
String s2 = new Base64().encodeBase64String( cipherText2 );
System.out.println("CipherText: " +s1 +", CipherText2: " +s2);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchProviderException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidParameterSpecException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Jetzt ist mein Problem, dass beide Strings gleich verschlüsselt werden, was doch eigentlich beim CBC-Mode nicht so sein sollte.
Hoffentlich kann mir da jemand weiterhelfen.
Viele Grüße