androidencryption

Easy way to Encrypt/Decrypt string in Android


My question is how to encrypt a String:

String AndroidId;

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

  cancel = (Button)findViewById(R.id.img_cancle);

  linear= (LinearLayout)findViewById(R.id.progress);
  linear.setVisibility(View.GONE);

  String encrypted = "MzIyNTE2" + "OTQNzM4NTQ=";

  Log.e("Encrypt", encrypted);

  WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
  WifiInfo wInfo = wifiManager.getConnectionInfo();
  AndroidId = wInfo.getMacAddress();

  AndroidId=encrypted;

How do i encrypt my AndroidId in which I storing a MAC address.


Solution

  • You can use Cipher for this.

    This class provides the functionality of a cryptographic cipher for encryption and decryption. It forms the core of the Java Cryptographic Extension (JCE) framework.

    Sample of encryption and decryption:

    public static SecretKey generateKey() 
        throws NoSuchAlgorithmException, InvalidKeySpecException 
    { 
        return secret = new SecretKeySpec(password.getBytes(), "AES"); 
    }
    
    public static byte[] encryptMsg(String message, SecretKey secret)
        throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, InvalidParameterSpecException, IllegalBlockSizeException, BadPaddingException, UnsupportedEncodingException 
    { 
       /* Encrypt the message. */
       Cipher cipher = null; 
       cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
       cipher.init(Cipher.ENCRYPT_MODE, secret); 
       byte[] cipherText = cipher.doFinal(message.getBytes("UTF-8")); 
       return cipherText; 
    }
    
    public static String decryptMsg(byte[] cipherText, SecretKey secret) 
        throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidParameterSpecException, InvalidAlgorithmParameterException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException, UnsupportedEncodingException 
    {
        /* Decrypt the message, given derived encContentValues and initialization vector. */
        Cipher cipher = null;
        cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, secret); 
        String decryptString = new String(cipher.doFinal(cipherText), "UTF-8");
        return decryptString; 
    }
    

    To encrypt:

    SecretKey secret = generateKey();
    EncUtil.encryptMsg(String toEncrypt, secret))
    

    To decrypt:

    EncUtil.decryptMsg(byte[] toDecrypt, secret))