javaaes解密问题

javaaes解密问题,java,aes,encryption,ecb,Java,Aes,Encryption,Ecb,我的任务是解密使用以下标准加密的Java文件: 具有128位密钥、ECB模式和PKCS7填充的AES加密算法。 加密文件格式为: -第一个字节为十六进制0x31–指定使用的加密方法(AES为1) -后跟输入文件的加密字节 我还必须下载该文件,因此我目前的尝试如下: 下载代码,我跳过第一个字节,因为它不是必需的,也不是加密的: 这给了我下载的加密文件,因此我尝试使用以下代码解密此文件: 上面应该给我一个新文件中的数据 下面是代码中用来为SecretKeySpec创建字节格式的键的util方

我的任务是解密使用以下标准加密的Java文件:

具有128位密钥、ECB模式和PKCS7填充的AES加密算法。 加密文件格式为: -第一个字节为十六进制0x31–指定使用的加密方法(AES为1) -后跟输入文件的加密字节

我还必须下载该文件,因此我目前的尝试如下:

下载代码,我跳过第一个字节,因为它不是必需的,也不是加密的:



这给了我下载的加密文件,因此我尝试使用以下代码解密此文件:



上面应该给我一个新文件中的数据

下面是代码中用来为SecretKeySpec创建字节格式的键的util方法


加密文件下载正常,DecrytOption运行,但我得到了上面的异常,检查应该解密的文件会发现文件的第一行正确解密,然后是接下来几行的一小部分,但其余部分返回垃圾

我现在被困在这里,不知道到哪里去找问题,有人能帮忙吗?或者为我指出导致异常的原因

其他信息:

10-12 15:30:37.291: WARN/System.err(6898):     at com.mypackage.net.SettingsProvisioner.getRoutingDoc(SettingsProvisioner.java:217)
以上行来自日志cat(stacktrace)中的异常

它表明异常发生在这一行代码中:

while ((numRead = inCipher.read(buf)) >= 0) {

如果没有完整的stacktrace,调试是很困难的,我们将不得不重新编译您的代码,如果出于安全原因(显然)您不能在此处发布代码,请尝试使用类似IBM stacktrace analyzer或


分析仪适用于everykind of development(包括Android)

我正在使用Android,因此分析仪无法工作,但我已编辑了我的问题,以包含更多信息
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;
}

public static String toHex(byte[] buf) {
    if (buf == null)
        return "";
    StringBuffer result = new StringBuffer(2*buf.length);
    for (int i = 0; i < buf.length; i++) {
        appendHex(result, buf[i]);
    }
    return result.toString();
}
private final static String HEX = "0123456789ABCDEF";
private static void appendHex(StringBuffer sb, byte b) {
    sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f));
}

public static String toHex(String txt) {
    return toHex(txt.getBytes());
}
public static String fromHex(String hex) {
    return new String(toByte(hex));
}
10-12 11:19:26.337: WARN/System.err(5376): java.io.IOException: last block incomplete in decryption
10-12 15:30:37.291: WARN/System.err(6898):     at com.mypackage.net.SettingsProvisioner.getRoutingDoc(SettingsProvisioner.java:217)
while ((numRead = inCipher.read(buf)) >= 0) {