智能工厂.apk(点击下载) / i.java


package cn.jiguang.ao;

import android.util.Base64;
import cn.jiguang.an.b;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;

public class i {
    private static <T> T a(Class<T> cls, Object[] objArr, Class<?>[] clsArr) {
        return cls.getConstructor(clsArr).newInstance(objArr);
    }

    public static String a(String str) {
        try {
            return new String(a(str, "DFA84B10B7ACDD25", "DFA84B10B7ACDD25"));
        } catch (Throwable unused) {
            b.e("", "Unexpected - failed to AES decrypt.");
            return "";
        }
    }

    public static String a(byte[] bArr, String str, String str2) {
        return Base64.encodeToString(a(bArr, str, str2, true), 2);
    }

    private static IvParameterSpec a(byte[] bArr) {
        try {
            return (IvParameterSpec) a(IvParameterSpec.class, new Object[]{bArr}, new Class[]{byte[].class});
        } catch (Throwable th) {
            th.printStackTrace();
            return null;
        }
    }

    private static byte[] a(String str, String str2) {
        byte[] bArr = new byte[str.length()];
        byte[] bytes = str.substring(0, str.length() / 2).getBytes(str2);
        byte[] bytes2 = str.substring(str.length() / 2).getBytes(str2);
        System.arraycopy(bytes, 0, bArr, 0, bytes.length);
        System.arraycopy(bytes2, 0, bArr, bytes.length, bytes2.length);
        return bArr;
    }

    public static byte[] a(String str, String str2, String str3) {
        return a(Base64.decode(str, 2), str2, str3, false);
    }

    public static synchronized byte[] a(byte[] bArr, String str, String str2, boolean z) {
        synchronized (i.class) {
            if (str == null) {
                return null;
            }
            SecretKeySpec secretKeySpec = new SecretKeySpec(a(str, "UTF-8"), "AES");
            IvParameterSpec a = a(str2.getBytes("UTF-8"));
            Cipher instance = Cipher.getInstance("AES/CBC/PKCS5Padding");
            instance.init(z ? 1 : 2, secretKeySpec, a);
            return instance.doFinal(bArr);
        }
    }
}