我正在尝试使用以下方法对加密字符串进行解密,但遇到了异常。
我正在尝试将我的加密字符串发送到以下方法,但它无法获取字节 [],在将字符串转换为字节 [] 时出现数字格式异常。
我的解密方法:
public static String decrypt(String seed, String encrypted) throws Exception {
byte[] seedByte = seed.getBytes();
System.arraycopy(seedByte, 0, key, 0, ((seedByte.length < 16) ? seedByte.length : 16));
String base64 = new String(Base64.decode(encrypted, 0));
byte[] rawKey = getRawKey(seedByte);
byte[] enc = toByte(base64);
byte[] result = decrypt(rawKey, enc);
return new String(result);
}
这是我的 toByte(String) 方法:
public static byte[] toByte(String hexString) {
int len = hexString.length() / 2;
byte[] result = new byte[len];
for (int i = 0; i < len; i++)
result[i] = Integer.valueOf(hexString.substring(2 * i, 2 * i + 2), 16).byteValue();
return result;
}
我得到的例外:
08-15 13:03:04.748: W/System.err(10013): java.lang.NumberFormatException: Invalid int: "@��"
08-15 13:03:04.748: W/System.err(10013): at java.lang.Integer.invalidInt(Integer.java:138)
08-15 13:03:04.748: W/System.err(10013): at java.lang.Integer.parse(Integer.java:375)
08-15 13:03:04.748: W/System.err(10013): at java.lang.Integer.parseInt(Integer.java:366)
08-15 13:03:04.748: W/System.err(10013): at java.lang.Integer.valueOf(Integer.java:510)
08-15 13:03:04.748: W/System.err(10013): at com.example.aes.EncodeDecodeAES.toByte(EncodeDecodeAES.java:226)
08-15 13:03:04.748: W/System.err(10013): at com.example.aes.EncodeDecodeAES.decrypt(EncodeDecodeAES.java:69)
08-15 13:03:04.748: W/System.err(10013): at com.example.aes.MainActivity$1.run(MainActivity.java:94)
我真的不明白为什么我会收到这个错误。
请建议。