aesファイル読み出し


android:
public class AesFileIo { 
    private static final String EOL = "
"; private static final String AES_ALGORITHM = "AES/CTR/NoPadding"; private SecretKeySpec secretKeySpec; private IvParameterSpec ivSpec; private static final String PROVIDER = "BC"; AesFileIo(byte[] aesKey, byte[] iv) { ivSpec = new IvParameterSpec(iv); secretKeySpec = new SecretKeySpec(aesKey, "AES"); } public String readFile(Context c, String fileName) { StringBuilder stringBuilder = new StringBuilder(); try { InputStream is = c.openFileInput(fileName); Cipher cipher = Cipher.getInstance(AES_ALGORITHM, PROVIDER); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivSpec); CipherInputStream cis = new CipherInputStream(is, cipher); InputStreamReader isr = new InputStreamReader(cis); BufferedReader reader = new BufferedReader(isr); String line; while ((line = reader.readLine()) != null) { stringBuilder.append(line).append(EOL); } is.close(); } catch (java.io.FileNotFoundException e) { // OK, file probably not created yet Log.i(this.getClass().toString(), e.getMessage(), e); } catch (Exception e) { Log.e(this.getClass().toString(), e.getMessage(), e); } return stringBuilder.toString(); } public void writeFile(Context c, String fileName, String theFile) { try { Cipher cipher = Cipher.getInstance(AES_ALGORITHM, PROVIDER); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec); byte[] encrypted = cipher.doFinal(theFile.getBytes()); OutputStream os = c.openFileOutput(fileName, 0); os.write(encrypted); os.flush(); os.close(); } catch (Exception e) { Log.e(this.getClass().toString(), e.getMessage(), e); } } }

 
pc
public class AesFileIo { 
 
    private static final String EOL = "
"; private static final String AES_ALGORITHM = "AES/CTR/NoPadding"; private SecretKeySpec secretKeySpec; private IvParameterSpec ivSpec; AesFileIo(byte[] aesKey, byte[] iv) { Security.addProvider(new org.bouncycastle.jce.provider .BouncyCastleProvider()); ivSpec = new IvParameterSpec(iv); secretKeySpec = new SecretKeySpec(aesKey, "AES"); } public String readFile(String fileName) { StringBuilder stringBuilder = new StringBuilder(); try { FileInputStream fis = new FileInputStream(fileName); Cipher cipher = Cipher.getInstance(AES_ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivSpec); CipherInputStream cis = new CipherInputStream(fis, cipher); InputStreamReader isr = new InputStreamReader(cis); BufferedReader reader = new BufferedReader(isr); String line; while ((line = reader.readLine()) != null) { stringBuilder.append(line).append(EOL); } fis.close(); } catch (java.io.FileNotFoundException e) { System.out.println("FileNotFoundException: probably OK"); } catch (Exception e) { e.printStackTrace(); } return stringBuilder.toString(); } public void writeFile(String fileName, String theFile) { try { Cipher cipher = Cipher.getInstance(AES_ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivSpec); byte[] encrypted = cipher.doFinal(theFile.getBytes()); FileOutputStream fos = new FileOutputStream(fileName); fos.write(encrypted); fos.flush(); fos.close(); } catch (Exception e) { e.printStackTrace(); } } }