当我尝试解密计算机上的文件时,该文件已损坏。在加密和解密文件时,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上完全相同,因此理论上应该适用于两种设备。
答案 0 :(得分:0)
如果您使用Java使用Jvm解密/加密,您可能需要通过修改jvm中的某些jar文件来协调在Java虚拟机中启用AES
看到这个link,你会发现一个README文件,它将解释你需要知道的所有内容。
问候
答案 1 :(得分:0)
好吧,我很尴尬,我正在传递加密数据,以便从我的GUI而不是解密的文件数据中保存。通过错误的论证的错误几乎浪费了一整天。
感谢您的帮助。解决