我正在 J2ME 中开发一些发送和接收加密消息的应用程序,我发现下面的代码对其进行加密并转换为字符串,但它不起作用并抛出异常,我应该怎么做?当我想解密时,我应该如何将 String 转换为 byte[] ?谢谢
byte[] plainArray = message.getBytes();
try {
byte[] keyBytes = "SECRET_1SECRET_2SECRET_3".getBytes();
// key = new KeyParameter(keyBytes);
AESEngine engine = new AESEngine();
PaddedBufferedBlockCipher cipher = new PaddedBufferedBlockCipher(engine);
cipher.init(true, new KeyParameter(keyBytes));
byte[] cipherBytes = new byte[cipher.getOutputSize(plainArray.length)];
int cipherLength = cipher.processBytes(plainArray, 0, plainArray.length, cipherBytes, 0);
cipher.doFinal(cipherBytes, cipherLength);
String result2 = org.apache.commons.codec.binary.Base64.encodeBase64String(cipherBytes);
formSender.append(result2);
} catch (Exception e) {
}
例外 :
跟踪:,在显示类 java.lang.Error 中捕获的异常:ClassFormatError:SSMS.EncShow() 中的 56,SSMS.commandAction() 中的 bci=173,javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener 中的 bci=16( ),在 com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand() 处 bci=44,在 com.sun.midp.chameleon.layers.SoftButtonLayer.soft1() 处 bci=80,在 com.sun 处 bci=31。 midp.chameleon.layers.SoftButtonLayer.keyInput(), bci=48 at com.sun.midp.chameleon.CWindow.keyInput(), bci=38 at javax.microedition.lcdui.Display$DisplayEventConsumerImpl.handleKeyEvent(), bci= 32 在 com.sun.midp.lcdui.DisplayEventListener.process(),bci=294 在 com.sun.midp.events.EventQueue.run(),bci=177 在 java.lang.Thread.run(Thread.java: 722)