谁能帮我解释下下面这段代码是怎么进行加密的最终算出key或ske的值publicstaticStringa(ListparamList,StringparamString){StringBufferlocalStringBuffer=newStringB...
谁能帮我解释下下面这段代码是怎么进行加密的 最终算出key或ske的值
public static String a(List paramList, String paramString)
{
StringBuffer localStringBuffer = new StringBuffer();
if ((paramList != null) && (paramList.size() != 0));
for (int i = 0; ; i++)
{
if (i >= paramList.size())
{
localStringBuffer.append("time=" + paramString);
localStringBuffer.append("_").append("!QA@WS#678moca");
String str1 = f.b("userToken", null);
if (v.c(str1))
localStringBuffer.append("_").append(str1);
String str2 = l.a(localStringBuffer.toString());
com.hoolai.moca.core.a.a("ImageUploadUtil", "key : " + localStringBuffer);
com.hoolai.moca.core.a.a("ImageUploadUtil", "keyMd5:" + str2);
return str2;
}
NameValuePair localNameValuePair = (NameValuePair)paramList.get(i);
localStringBuffer.append(localNameValuePair.getName() + "=").append(localNameValuePair.getValue());
}
}
public static boolean a(String paramString1, MessageType paramMessageType, String paramString2, String[] paramArrayOfString1, String[] paramArrayOfString2)
throws MCException
{
HashMap localHashMap = new HashMap();
localHashMap.put("type", String.valueOf(paramMessageType.ordinal()));
localHashMap.put("platform_name", "android");
localHashMap.put("version_api", String.valueOf(com.hoolai.moca.core.a.a.bD()));
localHashMap.put("filename", l.a(new File(paramString2)));
localHashMap.put("device_id", w.c(MainApplication.a()));
String str1 = f.b("userId", null);
if (v.c(str1))
localHashMap.put("login_uid", str1);
if (paramMessageType == MessageType.e)
localHashMap.put("duration", com.hoolai.moca.util.a.a.b(Uri.parse(paramString2)));
int i;
ArrayList localArrayList;
Iterator localIterator;
String str4;
if ((paramArrayOfString1 != null) && (paramArrayOfString2 != null))
{
if (paramArrayOfString1.length != paramArrayOfString2.length)
throw new RuntimeException("keys and values must have same size.");
i = 0;
if (i < paramArrayOfString1.length);
}
else
{
localArrayList = new ArrayList();
if (localHashMap != null)
{
localIterator = localHashMap.keySet().iterator();
if (localIterator.hasNext())
break label411;
}
String str2 = System.currentTimeMillis() / 1000L;
String str3 = a(localArrayList, str2);
localArrayList.add(new BasicNameValuePair("time", str2));
localArrayList.add(new BasicNameValuePair("key", str3));
localArrayList.add(new BasicNameValuePair("skey", a(str3.charAt(0), str3.charAt(-1 + str3.length()))));
switch (a()[paramMessageType.ordinal()])
{
展开