Android Java decryption-保存解密文件

Android Java decryption-保存解密文件,java,android,encryption,save,aes,Java,Android,Encryption,Save,Aes,所以我正在开发一个需要解密加密文件的应用程序。加密是用PHP完成的,解密是用Java完成的。我已经测试过,Java程序中的加密/解密没有问题。但我的问题是,我无法在Android中运行相同的应用程序。我需要了解如何获取加密数据。目前我更喜欢手动将其存储在assets文件夹中,仅用于测试,并按如下方式获取: AssetManager am = this.getAssets(); InputStream is = am.open("AUDIOVISUALFOTO02.pdf"); //or imag

所以我正在开发一个需要解密加密文件的应用程序。加密是用PHP完成的,解密是用Java完成的。我已经测试过,Java程序中的加密/解密没有问题。但我的问题是,我无法在Android中运行相同的应用程序。我需要了解如何获取加密数据。目前我更喜欢手动将其存储在assets文件夹中,仅用于测试,并按如下方式获取:

AssetManager am = this.getAssets();
InputStream is = am.open("AUDIOVISUALFOTO02.pdf"); //or image file
之后,我需要将解密后的文件保存在某个位置,以便查看解密是否也在设备上工作。因此,基本上,我需要找到一种方法,例如如何从资产文件夹获取加密文件,以及将解密后的文件存储在何处。以下是我用于解密的代码:

package com.android.decrypt;

import java.io.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

    public class DecryptPDFActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {

        Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
        SecretKeySpec keySpec = new SecretKeySpec("01234567890abcde".getBytes(), "AES");
        IvParameterSpec ivSpec = new IvParameterSpec("fedcba9876543210".getBytes());
        cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);

        //FileInputStream fis   = new FileInputStream(new File("encrypted.pdf"));
        CipherInputStream cis = new CipherInputStream(fis, cipher);
        FileOutputStream fos  = new FileOutputStream(new File("decrypted.pdf"));

        byte[] b = new byte[8];
        int i;

        while ((i = cis.read(b)) != -1) {
          fos.write(b, 0, i);
        }
        fos.flush(); fos.close();
        cis.close(); fis.close();

        }
        catch(Exception e)
        {
            e.fillInStackTrace();
            Log.e("Error", "Damned ! : "+e);
        }
      }
}

因此,欢迎您提供任何帮助或建议。

不清楚您的要求

如果您试图从assets文件夹中读取文件,下面有几个例子


为什么不在apk中使用文件系统而不是资产文件夹?

这只是为了测试,不是为了真正的应用程序。这就是为什么我使用资产文件夹。无论如何,谢谢你的回答!