import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.spec.KeySpec;

public class Test {
    public static void main(String[] args) throws Exception {
        SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
        //PBEKeySpec spec = new PBEKeySpec("securePassword".toCharArray(), "randomSalt".getBytes(), 65536, 256);
        //SecretKey secretKey = factory.generateSecret(spec);
        KeySpec spec = new PBEKeySpec("securePassword".toCharArray(), "randomSalt".getBytes(), 65536, 256);
        SecretKey tmp = factory.generateSecret(spec);
        SecretKey secretKey = new SecretKeySpec(tmp.getEncoded(), "AES");
        System.out.println(secretKey.getAlgorithm());
        try {
            Cipher cipherInstance = Cipher.getInstance("AES/CBC/PKCS5Padding");
            cipherInstance.init(Cipher.ENCRYPT_MODE, secretKey);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}