Hallo,
nachdem mir mein AES Cipher-Objekt ständig um die Ohren geflogen ist (illegal key size) wenn ich versuchte es mit einem 32byte großen key zu initialisieren hab ich mich mal schlau gemacht und festgestellt das Java im normalen standard JDK nur maximal 16byte große keys unterstützt.
Als Lösungen werden angeboten irgendwelche Files nachzuinstallieren (was ich nicht kann) oder einen Provider zu benutzen der mehr unterstützt. Da überall BouncyCastle als Provider empfohlen wird hab ich mir die Bibliothek runtergeladen.
Er fliegt aber nach wie vor beim Initialisieren des Cipher-Objekts raus mit der Meldung "illegal key size".
Kennt sich da jemand aus ? Wie mache ich das richtig ?
Grüße
nachdem mir mein AES Cipher-Objekt ständig um die Ohren geflogen ist (illegal key size) wenn ich versuchte es mit einem 32byte großen key zu initialisieren hab ich mich mal schlau gemacht und festgestellt das Java im normalen standard JDK nur maximal 16byte große keys unterstützt.
Als Lösungen werden angeboten irgendwelche Files nachzuinstallieren (was ich nicht kann) oder einen Provider zu benutzen der mehr unterstützt. Da überall BouncyCastle als Provider empfohlen wird hab ich mir die Bibliothek runtergeladen.
Java:
private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) {
System.out.println("KEY TESTS");
try
{
Security.addProvider(new BouncyCastleProvider());
Cipher cipher = Cipher.getInstance("AES/CBC/NOPADDING", "BC");
byte[] key = new byte[]{(byte)0xB1, (byte)0xD4, (byte)0xE8, (byte)0x7B, (byte)0x12, (byte)0x8D, (byte)0xF2, (byte)0x6A,
(byte)0x3C, (byte)0x30, (byte)0x84, (byte)0x0B, (byte)0xA0, (byte)0xFC, (byte)0xE3, (byte)0x64,
(byte)0x03, (byte)0x55, (byte)0x04, (byte)0x0A, (byte)0x13, (byte)0x0A, (byte)0x53, (byte)0x69,
(byte)0x65, (byte)0x6D, (byte)0x65, (byte)0x6E, (byte)0x73, (byte)0x20, (byte)0x41, (byte)0x47};
byte[] data = new byte[]{(byte)0x03, (byte)0x55, (byte)0x04, (byte)0x0A, (byte)0x13, (byte)0x0A, (byte)0x53, (byte)0x69,
(byte)0x65, (byte)0x6D, (byte)0x65, (byte)0x6E, (byte)0x73, (byte)0x20, (byte)0x41, (byte)0x47};
byte[] iv = new byte[]{(byte)0x38, (byte)0xF1, (byte)0x00, (byte)0x95, (byte)0x2C, (byte)0x8E, (byte)0x14, (byte)0x49,
(byte)0xB3, (byte)0x61, (byte)0x20, (byte)0x49, (byte)0x26, (byte)0x3F, (byte)0xAC, (byte)0xCC};
SecretKeySpec sks = new SecretKeySpec(key, "AES");
cipher.init(Cipher.ENCRYPT_MODE, sks, new IvParameterSpec(iv));
byte[] enc = cipher.doFinal(data);
System.out.println("DONE");
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
}
Er fliegt aber nach wie vor beim Initialisieren des Cipher-Objekts raus mit der Meldung "illegal key size".
Kennt sich da jemand aus ? Wie mache ich das richtig ?
Grüße