Here is a simple example of AES CB encryption in android using key and salt. I am not expert in encryption but I found how to do this pretty hard and I thought that maybe it will help somebody else if not , it will help me latter again :).
// decryption method public static String decryptString(String cypher, String key, String textToDecrypt, String salt) {     byte[] rawKey = new byte[32];     java.util.Arrays.fill(rawKey, (byte) 0);     byte[] keyOk = hmacSha1(salt, key);     for (int i = 0; i < keyOk.length; i++) {       rawKey[i] = keyOk[i];     }     SecretKeySpec skeySpec = new SecretKeySpec(hmacSha1(salt, key), "AES");     try {       Cipher cipher = Cipher.getInstance(cypher);       cipher.init(Cipher.DECRYPT_MODE, skeySpec);       byte[] encryptedData = cipher.doFinal(Base64.decode(textToDecrypt, Base64.NO_CLOSE));       if (encryptedData == null) return null;       return new String(encryptedData);     } catch (Exception e) {       e.printStackTrace();     }     return null;   } // encryption method   public static String encryptString(String cypher, String key, String clearText, String salt) {     byte[] rawKey = new byte[32];     java.util.Arrays.fill(rawKey, (byte) 0);     byte[] keyOk = hmacSha1(salt, key);     for (int i = 0; i < keyOk.length; i++) {       rawKey[i] = keyOk[i];     }     SecretKeySpec skeySpec = new SecretKeySpec(hmacSha1(salt, key), "AES");     try {       Cipher cipher = Cipher.getInstance(cypher);       cipher.init(Cipher.ENCRYPT_MODE, skeySpec);       byte[] encryptedData = cipher.doFinal(clearText.getBytes());       if (encryptedData == null) return null;       return Base64.encodeToString(encryptedData, Base64.NO_CLOSE);     } catch (Exception e) {       e.printStackTrace();     }     return null;   } // key generator method   public static byte[] hmacSha1(String salt, String key) {     SecretKeyFactory factory = null;     Key keyByte = null;     try {       factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");       KeySpec keyspec = new PBEKeySpec(key.toCharArray(), salt.getBytes(), 1024, 256);       keyByte = factory.generateSecret(keyspec);     } catch (NoSuchAlgorithmException e) {       e.printStackTrace();     } catch (InvalidKeySpecException e) {       e.printStackTrace();     }     return keyByte.getEncoded();   }
How to use it:
String encryptedString = encryptString("AES/ECB/PKCS5padding", "yourkeyhere", password, "yoursalthere"); String decryptedString = decryptString("AES/ECB/PKCS5padding", "yourkeyhere", encryptedString, "yoursalthere")
You can print this out and see that it works. :)