- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在 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) {
}
异常:
TRACE: , Exception caught in Display class java.lang.Error: ClassFormatError: 56 at SSMS.EncShow(), bci=173 at SSMS.commandAction(), bci=16 at javax.microedition.lcdui.Display$ChameleonTunnel.callScreenListener(), bci=44 at com.sun.midp.chameleon.layers.SoftButtonLayer.processCommand(), bci=80 at com.sun.midp.chameleon.layers.SoftButtonLayer.soft1(), bci=31 at com.sun.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 at com.sun.midp.lcdui.DisplayEventListener.process(), bci=294 at com.sun.midp.events.EventQueue.run(), bci=177 at java.lang.Thread.run(Thread.java:722)
最佳答案
根据 http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/ClassFormatError.html “当 Java 虚拟机尝试读取类文件并确定该文件格式错误或无法解释为类文件时抛出”。
对于基于 Java 1.3 的 Java ME,您的 org.apache.commons 版本可能太新了。请务必使用旧版本的 org.apache.commons。
关于java - J2ME Bouncy CaSTLe 获取 AES 加密结果作为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11260487/
我是一名优秀的程序员,十分优秀!