在PC上解密AES文件会破坏文件。相同的方法适用于我的设备

时间:2018-04-28 16:07:08

标签: java android file encryption aes

当我尝试解密计算机上的文件时,该文件已损坏。在加密和解密文件时,Android Java中的相同代码可以很好地工作。我将文件转换为byte [],然后加密并保存。然后加载保存的文件并解密并再次保存。文本加密和解密工作正常,不会破坏文件。在PC上加密和解密文件不会破坏它。 Android解密时,将PC加密文件发送到Android不会损坏。但是,当我发送Android加密文件并尝试在PC上解密时,它已损坏。

编辑:

解密代码:

unsigned int

我知道使用ECB与CBC相比是不安全的,但我这样做是为了证明你可以加密和解密android和PC上的文件

这是我将字节保存到文件的方式:

    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
    cipher.init(Cipher.DECRYPT_MODE, key); 
    byte[] byteRaw = cipher.doFinal(encrypted); 
    return byteRaw;

加密和解密的代码在Android和PC上完全相同,因此理论上应该适用于两种设备。

2 个答案:

答案 0 :(得分:0)

如果您使用Java使用Jvm解密/加密,您可能需要通过修改jvm中的某些jar文件来协调在Java虚拟机中启用AES

看到这个link,你会发现一个README文件,它将解释你需要知道的所有内容。

问候

答案 1 :(得分:0)

好吧,我很尴尬,我正在传递加密数据,以便从我的GUI而不是解密的文件数据中保存。通过错误的论证的错误几乎浪费了一整天。

感谢您的帮助。解决