Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
Ich hätte mal eine kurze Frage, kann man aus einem Passwort einen SecretKey(Spec) (verschlüsselungsmodus = AES) herstellen, wenn ja, wie (vlt. Link auf die Docu)?
"
java.security.InvalidKeyException: Invalid AES key length: 40 bytes
at com.sun.crypto.provider.AESCipher.engineGetKeySize(DashoA13*..)
at javax.crypto.Cipher.b(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.a(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at javax.crypto.Cipher.init(DashoA13*..)
at ip.AES.encrypt(NeuJFrame.java:90) at ip.NeuJFrame.writeToLog(NeuJFrame.java:1273)
at ip.NeuJFrame.okk(NeuJFrame.java:1217)
at ip.NeuJFrame.ok(NeuJFrame.java:1183)
at ip.NeuJFrame.access$100(NeuJFrame.java:136)
at ip.NeuJFrame$2.actionPerformed(NeuJFrame.java:226)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"
aes erwartet wie die meisten anderen auch eine bestimmte länge des schlüssels.
außerdem ist String#getBytes eine schlechte wahl, da so nicht sichergestellt ist dass das ergebnis auf 2 unterschiedlichen rechnern das selbe ist.
um eine passende länge des keys zu erzeugen empfehle ich dir MessageDigest zu verwenden um einen SHA1 oder MD5 oder ... Hash zu berechnen und dann diesen als key für aes
die Variable password (String), ist schon ein salted sha-hash.
Aber es muss doch ein Möglichkeit geben dass so hinzubekommen?!
Ob das Ergebnis auf 2 verschiedenen Rechnern das selbe ist, ist egal, nur die Länge muss stimmen.
Grüße,
Julius