|
[mw_shl_code=java,true]package com.baidu.sapi2.utils;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Build.VERSION;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.baidu.android.common.security.MD5Util;
import com.baidu.sapi2.d;
import java.io.FileInputStream;
import java.io.InputStream;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class a
{
public static String a()
{
for (;;)
{
try
{
if (!TextUtils.isEmpty(Build.VERSION.RELEASE)) {
continue;
}
str1 = "";
str1 = URLEncoder.encode(str1, "UTF-8");
}
catch (Exception localException)
{
String str1;
String str2 = "";
continue;
}
return str1;
str1 = Build.VERSION.RELEASE;
}
}
public static void a(Context paramContext)
{
if (paramContext == null) {
return;
}
for (;;)
{
try
{
FileInputStream localFileInputStream = new java/io/FileInputStream;
localFileInputStream.<init>("/system/etc/hosts");
byte[] arrayOfByte = new byte[localFileInputStream.available()];
localFileInputStream.read(arrayOfByte);
String str = new java/lang/String;
str.<init>(arrayOfByte);
if ((TextUtils.isEmpty(str)) || (!str.contains("passport.baidu.com"))) {
break label84;
}
d.a(paramContext).b(true);
localFileInputStream.close();
}
catch (Throwable localThrowable)
{
d.a(paramContext).b(false);
L.e(localThrowable);
}
break;
label84:
d.a(paramContext).b(false);
}
}
public static String b()
{
for (;;)
{
try
{
if (!TextUtils.isEmpty(Build.BRAND)) {
continue;
}
str1 = "";
str1 = URLEncoder.encode(str1, "UTF-8");
}
catch (Exception localException)
{
String str1;
String str2 = "";
continue;
}
return str1;
str1 = Build.BRAND;
}
}
public static String b(Context paramContext)
{
if (paramContext == null) {}
for (paramContext = null;; paramContext = ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId()) {
return paramContext;
}
}
public static String c()
{
for (;;)
{
try
{
if (!TextUtils.isEmpty(Build.MODEL)) {
continue;
}
str1 = "";
str1 = URLEncoder.encode(str1, "UTF-8");
}
catch (Exception localException)
{
String str1;
String str2 = "";
continue;
}
return str1;
str1 = Build.MODEL;
}
}
public static String c(Context paramContext)
{
if (paramContext == null) {
paramContext = null;
}
for (;;)
{
return paramContext;
try
{
paramContext = ((WifiManager)paramContext.getSystemService("wifi")).getConnectionInfo();
if (TextUtils.isEmpty(paramContext.getMacAddress())) {
paramContext = "";
} else {
paramContext = paramContext.getMacAddress();
}
}
catch (Exception paramContext)
{
paramContext = "";
}
}
}
public static String d()
{
return "os_version=" + a() + "&brand_name=" + b() + "&brand_model=" + c() + "&os_type=" + "Android";
}
public static String d(Context paramContext)
{
return MD5Util.toMd5((b(paramContext) + c(paramContext)).getBytes(), false).replace("\n", "");
}
public static class a
{
private static final String a = "MD5";
private static final String b = "AES";
private static final String c = "UTF-8";
private static final int d = 16;
private static final int e = 16;
public static String a(String paramString)
{
Object localObject = null;
if (TextUtils.isEmpty(paramString)) {
paramString = (String)localObject;
}
for (;;)
{
return paramString;
try
{
paramString = b(paramString.getBytes("UTF-8"));
StringBuilder localStringBuilder = new java/lang/StringBuilder;
localStringBuilder.<init>();
String str = a(b(paramString + "js52je)927!hsm^%3m"));
localStringBuilder = new java/lang/StringBuilder;
localStringBuilder.<init>();
paramString = a(paramString + "." + str, "js52je)927!hsm^%3m");
}
catch (Exception paramString)
{
L.e(paramString);
paramString = (String)localObject;
}
}
}
public static String a(String paramString1, String paramString2)
{
try
{
String str = a(b(paramString2.trim()));
paramString2 = str.substring(0, 16);
Object localObject = new java/lang/StringBuffer;
((StringBuffer)localObject).<init>(str.substring(0, 16));
str = ((StringBuffer)localObject).reverse().toString();
localObject = Cipher.getInstance("AES/CBC/NoPadding");
SecretKeySpec localSecretKeySpec = new javax/crypto/spec/SecretKeySpec;
localSecretKeySpec.<init>(paramString2.getBytes("UTF-8"), "AES");
paramString2 = new javax/crypto/spec/IvParameterSpec;
paramString2.<init>(str.getBytes("UTF-8"));
((Cipher)localObject).init(1, localSecretKeySpec, paramString2);
paramString1 = b(((Cipher)localObject).doFinal(c(paramString1.getBytes("UTF-8"))));
return paramString1;
}
catch (Exception paramString1)
{
for (;;)
{
L.e(paramString1);
paramString1 = null;
}
}
}
public static String a(byte[] paramArrayOfByte)
{
StringBuilder localStringBuilder = new StringBuilder();
int j = paramArrayOfByte.length;
for (int i = 0; i < j; i++) {
localStringBuilder.append(Integer.toString((paramArrayOfByte & 0xFF) + 256, 16).substring(1));
}
return localStringBuilder.toString();
}
public static String b(String paramString1, String paramString2)
{
try
{
Object localObject2 = a(b(paramString2.trim()));
paramString2 = ((String)localObject2).substring(0, 16);
Object localObject1 = new java/lang/StringBuffer;
((StringBuffer)localObject1).<init>(((String)localObject2).substring(0, 16));
localObject1 = ((StringBuffer)localObject1).reverse().toString();
localObject2 = Cipher.getInstance("AES/CBC/NoPadding");
SecretKeySpec localSecretKeySpec = new javax/crypto/spec/SecretKeySpec;
localSecretKeySpec.<init>(paramString2.getBytes("UTF-8"), "AES");
paramString2 = new javax/crypto/spec/IvParameterSpec;
paramString2.<init>(((String)localObject1).getBytes("UTF-8"));
((Cipher)localObject2).init(2, localSecretKeySpec, paramString2);
paramString1 = b(((Cipher)localObject2).doFinal(c(paramString1.getBytes("UTF-8"))));
return paramString1;
}
catch (Exception paramString1)
{
for (;;)
{
L.e(paramString1);
paramString1 = null;
}
}
}
public static String b(byte[] paramArrayOfByte)
{
int i2 = 0;
StringBuilder localStringBuilder = new StringBuilder();
int i3 = paramArrayOfByte.length * 8;
int i = 0;
int m = 0;
int i1 = 0;
int n = 6;
int k = 0;
int j;
if ((k > 0) && (n > 0))
{
i = (byte)((byte)((paramArrayOfByte[i1] & 0xFF) << n | (paramArrayOfByte[(i1 + 1)] & 0xFF) >> 8 - n) & 0x3F);
k = 8 - n;
j = 6 - k;
}
for (;;)
{
localStringBuilder.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i));
m += 6;
i1 = m / 8;
int i4 = i3 - m;
n = j;
if (i4 >= 6) {
break;
}
if (i4 > 0) {
localStringBuilder.append("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((byte)(paramArrayOfByte[(paramArrayOfByte.length - 1)] << 6 - i4 & 0x3F)));
}
for (i = i2; i < i3 % 3; i++) {
localStringBuilder.append("=");
}
if (k == 0)
{
i = (byte)((paramArrayOfByte[i1] & 0xFF) >> 8 - n);
k = 2;
j = 4;
}
else
{
j = n;
if (n == 0)
{
i = (byte)(paramArrayOfByte[i1] & 0x3F);
j = 6;
k = 0;
}
}
}
return localStringBuilder.toString();
}
private static byte[] b(String paramString)
{
try
{
MessageDigest localMessageDigest = MessageDigest.getInstance("MD5");
localMessageDigest.update(paramString.getBytes());
paramString = localMessageDigest.digest();
return paramString;
}
catch (NoSuchAlgorithmException paramString)
{
for (;;)
{
L.e(paramString);
paramString = null;
}
}
}
private static byte[] c(byte[] paramArrayOfByte)
{
byte[] arrayOfByte = paramArrayOfByte;
if (paramArrayOfByte.length % 16 != 0)
{
arrayOfByte = new byte[(paramArrayOfByte.length / 16 + 1) * 16];
System.arraycopy(paramArrayOfByte, 0, arrayOfByte, 0, paramArrayOfByte.length);
for (int i = paramArrayOfByte.length; i < arrayOfByte.length; i++) {
arrayOfByte = ((byte)0);
}
}
return arrayOfByte;
}
}
}
[/mw_shl_code]
代码分析 回复可见
上一篇:2016年3月19日签到记录贴 下一篇:教你如何不加修饰和前后缀打出邓小平 |
|