Android Password Descrypt decrypt(String password, String encryptedData)

Here you can find the source of decrypt(String password, String encryptedData)

Description

decrypt

License

Open Source License

Declaration

public static String decrypt(String password, String encryptedData)
            throws Exception 

Method Source Code

//package com.java2s;
//License from project: Open Source License 

import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import android.util.Base64;

public class Main {
    private static final String CIPHER_ALGORITHM = "AES";
    private static final String RANDOM_GENERATOR_ALGORITHM = "SHA1PRNG";
    private static final int RANDOM_KEY_SIZE = 128;

    public static String decrypt(String password, String encryptedData)
            throws Exception {
        byte[] secretKey = generateKey(password.getBytes());
        SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey,
                CIPHER_ALGORITHM);/*from  w  ww  .  ja v  a 2  s  . c om*/
        Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
        cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
        byte[] encrypted = Base64.decode(encryptedData, Base64.DEFAULT);
        byte[] decrypted = cipher.doFinal(encrypted);
        return new String(decrypted);
    }

    public static byte[] generateKey(byte[] seed) throws Exception {
        KeyGenerator keyGenerator = KeyGenerator
                .getInstance(CIPHER_ALGORITHM);
        SecureRandom secureRandom = SecureRandom
                .getInstance(RANDOM_GENERATOR_ALGORITHM);
        secureRandom.setSeed(seed);
        keyGenerator.init(RANDOM_KEY_SIZE, secureRandom);
        SecretKey secretKey = keyGenerator.generateKey();
        return secretKey.getEncoded();
    }
}

Related

  1. decryptionKey(String password)
  2. decryptionKey(String password)