package com.ahtv.application;import android.util.Base64;
import java.io.PrintStream;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;public class CryptAES
{
public static String jmkey = "VatC3b0zAqpLmAkE";
public static String decrypt(String paramString1, String paramString2)
{
try
{
SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramString2.getBytes(), "AES");
Cipher localCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
localCipher.init(2, localSecretKeySpec);
byte[] arrayOfByte2 = localCipher.doFinal(Base64.decode(paramString1, 0));
arrayOfByte1 = arrayOfByte2;
}
catch (Exception localException)
{
for (;;)
{
System.out.println(localException.toString());
byte[] arrayOfByte1 = null;
}
}
return new String(arrayOfByte1);
}
public static String encrypt(String paramString1, String paramString2)
{
try
{
SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramString2.getBytes(), "AES");
Cipher localCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
localCipher.init(1, localSecretKeySpec);
byte[] arrayOfByte2 = localCipher.doFinal(paramString1.getBytes());
arrayOfByte1 = arrayOfByte2;
}
catch (Exception localException)
{
for (;;)
{
System.out.println(localException.toString());
byte[] arrayOfByte1 = null;
}
}
return new String(Base64.encodeToString(arrayOfByte1, 0));
}
public static String getKey()
{
if ((jmkey != null) || (!"".equals(jmkey)))
{
char[] arrayOfChar1 = jmkey.toCharArray();
char[] arrayOfChar2 = new char[jmkey.length()];
for (int i = 0; i < arrayOfChar1.length; i++) {
arrayOfChar2[i] = arrayOfChar1[(-1 + arrayOfChar1.length - i)];
}
return new String(arrayOfChar2);
}
return "EkAmLpqAz0b3CtaV";
}
public static void main(String[] paramArrayOfString)
{
System.out.println(getKey());
}
}
import java.io.PrintStream;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;public class CryptAES
{
public static String jmkey = "VatC3b0zAqpLmAkE";
public static String decrypt(String paramString1, String paramString2)
{
try
{
SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramString2.getBytes(), "AES");
Cipher localCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
localCipher.init(2, localSecretKeySpec);
byte[] arrayOfByte2 = localCipher.doFinal(Base64.decode(paramString1, 0));
arrayOfByte1 = arrayOfByte2;
}
catch (Exception localException)
{
for (;;)
{
System.out.println(localException.toString());
byte[] arrayOfByte1 = null;
}
}
return new String(arrayOfByte1);
}
public static String encrypt(String paramString1, String paramString2)
{
try
{
SecretKeySpec localSecretKeySpec = new SecretKeySpec(paramString2.getBytes(), "AES");
Cipher localCipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
localCipher.init(1, localSecretKeySpec);
byte[] arrayOfByte2 = localCipher.doFinal(paramString1.getBytes());
arrayOfByte1 = arrayOfByte2;
}
catch (Exception localException)
{
for (;;)
{
System.out.println(localException.toString());
byte[] arrayOfByte1 = null;
}
}
return new String(Base64.encodeToString(arrayOfByte1, 0));
}
public static String getKey()
{
if ((jmkey != null) || (!"".equals(jmkey)))
{
char[] arrayOfChar1 = jmkey.toCharArray();
char[] arrayOfChar2 = new char[jmkey.length()];
for (int i = 0; i < arrayOfChar1.length; i++) {
arrayOfChar2[i] = arrayOfChar1[(-1 + arrayOfChar1.length - i)];
}
return new String(arrayOfChar2);
}
return "EkAmLpqAz0b3CtaV";
}
public static void main(String[] paramArrayOfString)
{
System.out.println(getKey());
}
}
只有getKey方法被调用。
jmkey 初始值 VatC3b0zAqpLmAkE 非空。
arrayOfChar2[i] = arrayOfChar1[(-1 + arrayOfChar1.length - i)]; //是逆序获取另一个数组值。最终结果是 VatC3b0zAqpLmAkE 逆序,和else分支一样的结果。最终打印 EkAmLpqAz0b3CtaV
{
public static String a = "397666704";
public static String getRealUrl(String paramString)
{
try
{
String str2 = CryptAES.decrypt(paramString, CryptAES.getKey());
return str2;
}
catch (Exception localException1)
{
try
{
String str1 = CryptAES.decrypt(paramString, CryptAES.getKey());
return str1;
}
catch (Exception localException2) {}
}
return paramString;
}
public static String loginValid(String paramString)
{
if (a.equals("397666704")) {
return paramString;
}
return "";
}
public String doSomething(String paramString)
{
String str1 = "";
String str2 = "";
String str3 = "";
String str4 = "";
String[] arrayOfString = paramString.split("&link=");
if (arrayOfString.length == 2)
{
str1 = arrayOfString[1];
str2 = arrayOfString[0];
}
if ((!"".equals(str1)) && (str1.endsWith("tv"))) {
str3 = NetUtils.get("" + str1);
}
System.out.println(str3);
if ((!"".equals(str3)) && (str3.substring(1).startsWith("http://"))) {
str4 = NetUtils.get(str3.substring(1));
}
if ("".equals(str4)) {
return paramString;
}
return str2 + "&link=" + str4;
}
public String getLink(String paramString)
{
String str1 = "";
String str2 = "";
String str3 = "";
String str4 = "";
String[] arrayOfString = paramString.split("&link=");
if (arrayOfString.length == 2)
{
str1 = arrayOfString[1];
str2 = arrayOfString[0];
}
if ((!"".equals(str1)) && (str1.endsWith("tv"))) {
str4 = NetUtils.get("" + str1);
}
if (!"".equals(str4)) {
str3 = str4.substring(4);
}
System.out.println("jmlink=" + str3);
if ("".equals(str3)) {
return paramString;
}
String str5 = CryptAES.decrypt(str3, CryptAES.getKey());
System.out.println("reallink=" + str5);
return str2 + "&link=" + str5;
}
}
所以getKey的结果还是和原来一样 EkAmLpqAz0b3CtaV