package com.pan.simplepicture.utils;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Iterator;
import java.util.TreeMap;
public class MD5Utils {
public static String MD5(String str) {
try {
// Create MD5 Hash
MessageDigest digest = MessageDigest
.getInstance("MD5");
digest.update(str.getBytes());
byte messageDigest[] = digest.digest();
return toHexString(messageDigest).toUpperCase();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return "";
}
private static String toHexString(byte[] b) { // String to byte
StringBuilder sb = new StringBuilder();
for (int i = 0; i < b.length; i++) {
int j = 0xFF & b[i];
if (j <= 15) {
sb.append("0");
}
sb.append(Integer.toHexString(j));
}
return sb.toString();
}
private static final String KEY="7763079ba6abf342a99ab5a1dfa87ba8";
public static String getAccessToken(TreeMap<String, String> paramTreeMap) {
String str1 = "";
Iterator localIterator = paramTreeMap.keySet().iterator();
while (localIterator.hasNext()) {
String str3 = (String) localIterator.next();
str1 = str1 + str3 + "=" + (String) paramTreeMap.get(str3) + "&";
}
String str2 = str1.substring(0, -1 + str1.length());
return digest(str2 + KEY);
}
static final String HEXES = "0123456789abcdef";
public static String digest(String paramString)
{
try
{
MessageDigest localMessageDigest = MessageDigest.getInstance("md5");
localMessageDigest.update(paramString.getBytes());
String str = getHex(localMessageDigest.digest());
return str;
}
catch (Exception localException)
{
localException.printStackTrace();
}
return null;
}
private static String getHex(byte[] paramArrayOfByte)
{
if (paramArrayOfByte == null)
return null;
StringBuilder localStringBuilder = new StringBuilder(2 * paramArrayOfByte.length);
int i = paramArrayOfByte.length;
for (int j = 0; j < i; j++)
{
int k = paramArrayOfByte[j];
localStringBuilder.append(HEXES.charAt((k & 0xF0) >> 4)).append(HEXES.charAt(k & 0xF));
}
return localStringBuilder.toString();
}
}