AES encrypt with Key - Android java.security

Android examples for java.security:AES

Description

AES encrypt with Key

Demo Code

import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.spec.AlgorithmParameterSpec;

import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

import android.util.Base64;

public class Main {

  private static final String ENCRYPTION_KEY = "RwcmlVpg";
  private static final String ENCRYPTION_IV = "4e5Wa71fYoT7MFEX";

  public static String encrypt(String src) {
    try {/*from  w w w . j  a va 2s. c  o  m*/
      Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
      cipher.init(Cipher.ENCRYPT_MODE, makeKey(), makeIv());
      return Base64.encodeToString(cipher.doFinal(src.getBytes()), Base64.NO_WRAP);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }

  static AlgorithmParameterSpec makeIv() {
    return makeIv(ENCRYPTION_IV);
  }

  static AlgorithmParameterSpec makeIv(String ivString) {
    try {
      return new IvParameterSpec(ivString.getBytes("UTF-8"));
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }
    return null;
  }

  static Key makeKey() {
    return makeKey(ENCRYPTION_KEY);
  }

  static Key makeKey(String passkey) {
    try {
      MessageDigest md = MessageDigest.getInstance("SHA-256");
      byte[] key = md.digest(passkey.getBytes("UTF-8"));
      return new SecretKeySpec(key, "AES");
    } catch (NoSuchAlgorithmException e) {
      e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
    }

    return null;
  }

}

Related Tutorials