我使用这种方法来解密我收到的消息:Java:如何将字符串转换为base64string?
private static String decrypt(String key, String initVector, String dataToDecrypt) {
try {
IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
String safeString = dataToDecrypt.replace('-', '+').replace('_', '/');
byte[] decodedString = Base64.decodeBase64(safeString);
byte[] original = cipher.doFinal(decodedString);
return new String(original);
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
但是,我Android
应用程序崩溃,显示以下异常:
java.lang.NoSuchMethodError: No static method decodeBase64(Ljava/lang/String;)[B in class Lorg/apache/commons/codec/binary/Base64; or its super classes (declaration of 'org.apache.commons.codec.binary.Base64' appears in /system/framework/ext.jar)
因此,decodeBase64
需要base64string
的方法,但是我通过string
。在这里我的问题是:
如何String
转换为base64string
?!
请注意,我试图DECODE不编码。几乎所有提供的解决方案都是针对编码部分的,这不是我的担心。
PS:我正在开发在Android工作室Android的应用程序
的可能的复制[阿帕奇共享编解码器与Android:找不到方法(http://stackoverflow.com /问题/ 2047706/Apache的公地编解码器与-Android的可能 - 不找方法) – Kiskae
@Kiskae:我所有的尊重,这绝对不是重复。我正在问一个非常不同的问题。他ia问:“Android:找不到方法,该如何解决?”与此同时,我正在问一个非常精确的问题,即“如何将字符串转换为base64string”..如果问题的根源是相同的,那并不意味着问题是重复的。我不得不说,这是不公平的(在downvotes,关闭请求和重复的问题负责不过,当天我只是想学习和获得更好的感谢结束。)的Android –
可能的复制 - decodeBase64崩溃应用(http://stackoverflow.com/questions/27276539/android-decodebase64-crashes-app) –