Android AES Decrypt aesDecode(String seed, String encrypted)

Here you can find the source of aesDecode(String seed, String encrypted)

Description

aes Decode

Declaration

public static String aesDecode(String seed, String encrypted)
            throws Exception 

Method Source Code

//package com.java2s;

import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

import javax.crypto.spec.SecretKeySpec;

public class Main {
    public static String aesDecode(String seed, String encrypted)
            throws Exception {
        byte[] rawKey = getRawKey(seed.getBytes());
        byte[] enc = toByte(encrypted);
        byte[] result = decrypt(rawKey, enc);
        return new String(result);
    }/*from www. j  av a  2s .c o m*/

    private static byte[] getRawKey(byte[] seed) throws Exception {
        KeyGenerator kgen = KeyGenerator.getInstance("AES");
        SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
        sr.setSeed(seed);
        kgen.init(128, sr); // 192 and 256 bits may not be available
        SecretKey skey = kgen.generateKey();
        byte[] raw = skey.getEncoded();
        return raw;
    }

    public static byte[] toByte(String hexString) {
        int len = hexString.length() / 2;
        byte[] result = new byte[len];
        for (int i = 0; i < len; i++)
            result[i] = Integer.valueOf(
                    hexString.substring(2 * i, 2 * i + 2), 16).byteValue();
        return result;
    }

    private static byte[] decrypt(byte[] raw, byte[] encrypted)
            throws Exception {
        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.DECRYPT_MODE, skeySpec);
        byte[] decrypted = cipher.doFinal(encrypted);
        return decrypted;
    }
}

Related

  1. decryptBytes(byte[] data, byte[] key)
  2. decryptHex(String content, String key)
  3. decryptHex(String content, String username, String password)
  4. decryptNumberWithAES(String encrypted)
  5. decryptUrlDecode(String dataPassword, String encrypted)
  6. decrypt(byte[] raw, byte[] encrypted)
  7. decrypt(Context context, String encrypted)
  8. decrypt(Context context, String encrypted)
  9. decode(String seed, String encrypted)