这是我的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解密吗?请帮助