Android Open Source - AndroidLibraryProject File Encryptor






From Project

Back to project page AndroidLibraryProject.

License

The source code is released under:

Apache License

If you think the Android project AndroidLibraryProject listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/* 
 * Copyright (c) 2013 by CDAC Chennai// w  ww . j a v  a 2s  . c o  m
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * 
 * @File        FileEncryptor
 * @Created:    01.01.2014
 * @author:     Prasenjit
 * Last Change: 13.01.2014 by Prasenjit
 */
package com.contextawareframework.security;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import javax.crypto.Cipher;
import javax.crypto.CipherInputStream;
import javax.crypto.CipherOutputStream;
import javax.crypto.spec.SecretKeySpec;

/**
 * To encrypt / decrypt any file. User has to pass the algo name and path where
 * the encrypted file / decrypted file has to be created. In case user is creating 
 * the file on Sd Card, he / she has to provide the Read / Write Permission on Sd Card
 * in Android manifest file. 
 */

public class FileEncryptor{

  private String algo;
  private File file;
  private String secretKey;
  /**
   * Description : Custom Constructor
   */
  public FileEncryptor(String path) {
    this.algo="DES/ECB/PKCS5Padding"; //setting algo DES/ECB/PKCS5Padding
    this.file=new File(path); //setting file
    //this.secretKey = secretKey;  
  }

  /**
   * Description : To encrypt a given file with the provided algo
   */
  public void encrypt(String secretKey) throws Exception{

    //opening streams
    FileInputStream fis =new FileInputStream(file);
    file=new File(file.getAbsolutePath()+".enc");
    FileOutputStream fos =new FileOutputStream(file);

    //         BASE64Decoder decoder = new BASE64Decoder();
    //         BASE64Encoder encoder = new BASE64Encoder();
    //generating key

    //byte k[] = "HignDlPs".getBytes();   

    byte k[] = secretKey.getBytes();
    SecretKeySpec key = new SecretKeySpec(k,algo.split("/")[0]);  //SecretKeySpec(k,algo.split("n")[0]);
    if (key != null) 
    {  

      //String Key1 = Base64.encode(key.getEncoded());
      //String Key1 = Base64.encodeToString(key.getEncoded(),Base64.DE);
      System.out.println("Key = " + key.getEncoded().toString());
    }

    //creating and initialising cipher and cipher streams
    Cipher encrypt =  Cipher.getInstance(algo); 
    //System.out.println("Key - " + key);
    encrypt.init(Cipher.ENCRYPT_MODE, key);  
    //System.out.println("Key - " + encrypt);
    CipherOutputStream cout=new CipherOutputStream(fos, encrypt);

    byte[] buf = new byte[1024];
    int read;

    while((read=fis.read(buf))!=-1)  //reading data
      cout.write(buf,0,read);  //writing encrypted data

    //closing streams
    fis.close();
    cout.flush();
    cout.close();
  }

  /**
   * Description : To decrypt a given file with the provided algo
   */
  public void decrypt(String secretKey) throws Exception{

    //opening streams
    FileInputStream fis =new FileInputStream(file);
    file=new File(file.getAbsolutePath()+".dec");
    FileOutputStream fos =new FileOutputStream(file);               

    //generating same key
    //byte k[] = "HignDlPs".getBytes();   
    byte k[] = secretKey.getBytes();
    SecretKeySpec key = new SecretKeySpec(k,algo.split("/")[0]);  

    //creating and initialising cipher and cipher streams
    Cipher decrypt =  Cipher.getInstance(algo);  
    decrypt.init(Cipher.DECRYPT_MODE, key);  
    CipherInputStream cin=new CipherInputStream(fis, decrypt);

    byte[] buf = new byte[1024];
    int read=0;
    while((read=cin.read(buf))!=-1)  //reading encrypted data
      fos.write(buf,0,read);  //writing decrypted data

    //closing streams
    cin.close();
    fos.flush();
    fos.close();

  }

}




Java Source Code List

.BatteryDbHelper.java
.Bluetooth.java
.Camera.java
.Gravity.java
.Humidity.java
.Microphone.java
.NFC.java
.Orientation.java
.Pressure.java
.SDCard.java
.Telephony.java
.Temparature.java
.USB.java
.Wifi.java
com.contextawareframework.backgroundservices.AccelerometerDataListener.java
com.contextawareframework.backgroundservices.BatteryDataService.java
com.contextawareframework.backgroundservices.CAFService.java
com.contextawareframework.backgroundservices.GPSTracker.java
com.contextawareframework.backgroundservices.GyroscopeDataListener.java
com.contextawareframework.backgroundservices.LightDataListener.java
com.contextawareframework.backgroundservices.LocationDataListener.java
com.contextawareframework.backgroundservices.MagnetometerDataListener.java
com.contextawareframework.backgroundservices.ProximityDataListener.java
com.contextawareframework.backgroundservices.SoundRecorder.java
com.contextawareframework.backgroundservices.Text2Speech.java
com.contextawareframework.contextawarefunctions.ContextAwareFunction.java
com.contextawareframework.controller.BatteryController.java
com.contextawareframework.controller.SensorController.java
com.contextawareframework.dataanalysis.AccelerometerDataAnalysis.java
com.contextawareframework.dataanalysis.ApplicationDataAnalysis.java
com.contextawareframework.dataanalysis.LocationDataAnalysis.java
com.contextawareframework.dbmanager.AccelerometerDbHelper.java
com.contextawareframework.dbmanager.ContextAwareSQLiteHelper.java
com.contextawareframework.dbmanager.GyroscopeDbHelper.java
com.contextawareframework.dbmanager.LightDbHelper.java
com.contextawareframework.dbmanager.LocationDbHelper.java
com.contextawareframework.dbmanager.MagnetometerDbHelper.java
com.contextawareframework.dbmanager.ProximityDbHelper.java
com.contextawareframework.dbmanager.UserInfoDbHelper.java
com.contextawareframework.exceptions.AccelerometerSensorException.java
com.contextawareframework.exceptions.BatteryException.java
com.contextawareframework.exceptions.CAFException.java
com.contextawareframework.exceptions.GyrometerSensorException.java
com.contextawareframework.exceptions.LightSensorException.java
com.contextawareframework.exceptions.LocationServiceException.java
com.contextawareframework.exceptions.MagnetometerSensorException.java
com.contextawareframework.exceptions.ProximitySensorException.java
com.contextawareframework.exceptions.SDCardException.java
com.contextawareframework.exceptions.SQLiteQueryException.java
com.contextawareframework.exceptions.SensorException.java
com.contextawareframework.globalvariable.CAFConfig.java
com.contextawareframework.notificationservice.IssueNotification.java
com.contextawareframework.os.Battery.java
com.contextawareframework.os.CAFPowerManager.java
com.contextawareframework.os.UserInfo.java
com.contextawareframework.probe.Probe.java
com.contextawareframework.probe.WfiProbe.java
com.contextawareframework.querymodule.BaseQueryClass.java
com.contextawareframework.querymodule.DeveloperInfo.java
com.contextawareframework.querymodule.UserIdentification.java
com.contextawareframework.security.FileEncryptor.java
com.contextawareframework.security.JavaDESEncryption.java
com.contextawareframework.sensorlistener.BatteryListener.java
com.contextawareframework.sensorlistener.SensorListener.java
com.contextawareframework.sensors.environmentsensors.Light.java
com.contextawareframework.sensors.motionsensors.Accelerometer.java
com.contextawareframework.sensors.motionsensors.Gyrometer.java
com.contextawareframework.sensors.positionsensors.LocationPojo.java
com.contextawareframework.sensors.positionsensors.Magnetometer.java
com.contextawareframework.sensors.positionsensors.Proximity.java
com.contextawareframework.uploadmanager.BackupDb.java
com.contextawareframework.uploadmanager.UploadScheduler.java
com.contextawareframework.uploadmanager.UploadToServer.java
com.contextawareframework.utility.CsvFileWriter.java
com.example.frameworktestcase.FrameworkFunctionalTestActivity.java
com.example.frameworktestcase.MainActivity.java
com.example.frameworktestcase.SecondActivity.java
com.example.frameworktestcase.Singleton.java