In Java 7, I want to do Encryption and Decryption of a password by using
SHA-256 and AES-256.
I tried to use PBKDF2WithHmacSHA256, but this is unsupported in Java7.
Do you have any ideas? Please tell me the Library information.
Thanks.
Example(Java8)
public class PasswordUtil {
 
    private static final String ALGORITHM = "PBKDF2WithHmacSHA256";
    private static final int ITERATION_COUNT = 10000;
    private static final int KEY_LENGTH = 256;
 
    /**
     *
     * @param password
     * @param salt
     * @return
     */
    public static String getSafetyPassword(String password, String salt) {
 
        char[] passCharAry = password.toCharArray();
        byte[] hashedSalt = getHashedSalt(salt);
 
        PBEKeySpec keySpec = new PBEKeySpec(passCharAry, hashedSalt, ITERATION_COUNT, KEY_LENGTH);
 
        SecretKeyFactory skf;
        try {
            skf = SecretKeyFactory.getInstance(ALGORITHM);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
 
        SecretKey secretKey;
        try {
            secretKey = skf.generateSecret(keySpec);
        } catch (InvalidKeySpecException e) {
            throw new RuntimeException(e);
        }
        byte[] passByteAry = secretKey.getEncoded();
 
        StringBuilder sb = new StringBuilder(64);
        for (byte b : passByteAry) {
            sb.append(String.format("%02x", b & 0xff));
        }
        return sb.toString();
    }
 
    /**
     *
     * @param salt
     * @return
     */
    private static byte[] getHashedSalt(String salt) {
        MessageDigest messageDigest;
        try {
            messageDigest = MessageDigest.getInstance("SHA-256");
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException(e);
        }
        messageDigest.update(salt.getBytes());
        return messageDigest.digest();
    }
}