我们可以使用swift解密使用基本Java AES加密加密的文件吗?

时间:2018-11-29 11:44:37

标签: java swift encryption aes

这是我的Java加密代码

 try
 {
 FileInputStream fis = new FileInputStream(filePath);

FileOutputStream fos = new FileOutputStream(encryptedFilePath);


        SecretKeySpec sks = new SecretKeySpec("secret_key_here".getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, sks);
CipherInputStream cis = new CipherInputStream(fis, cipher);
int b;
byte[] d = new byte[8];
while((b = cis.read(d)) != -1) {
    fos.write(d, 0, b);
}
fos.flush();
fos.close();
cis.close();
 }

 catch(  IOException | InvalidKeyException |NoSuchAlgorithmException | NoSuchPaddingException e)
  {

System.out.println(e);
  }

我正在指定的路径中获取加密的文件,我可以使用解密代码在android中对其进行解密。

但是当我使用swift对其进行解密时,该文件不会被解密。

实际上是否可以解密通过java AES加密的文件,而该文件可以通过swift进行解密。

这是我快速的解密代码

//fetching content from file
let fileContent = try! Data(contentsOf:urlPath!)

 //secret key

let keyData = "secret_key_here"//same key for encryption

    let data = Data(keyData.utf8)
//decrypting
let decryptedDta = AES.decrypt(fileContent, key: data)
//converting to string
let decryptedDta_String =  String(decoding: decryptedDta!, as: UTF8.self)
//writing to file
 let fileManager = FileManager.default
 do {

    let path = try fileManager.url(for: .documentDirectory, in: .allDomainsMask, appropriateFor: nil, create: false)

    let fileURL = path.appendingPathComponent("newfile_1.xhtml")

    print("fileURL == ",fileURL)



    try decryptedDta_String.write(to: fileURL, atomically: true, encoding: .utf8)

} catch {

    print("error creating file")

}

,但文件仍被加密。真的有可能吗?

我们可以解密通过Java AES加密的文件,然后通过swift解密吗?请帮助

0 个答案:

没有答案