import java.security.*;
import java.security.spec.*;
public class MD5_pwd {
private static char[] hex = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
public static String md5(String str) {
MessageDigest md = null;
try {
md = MessageDigest.getInstance("MD5");
} catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "exception...";
}
char[] arr = str.toCharArray();
byte[] b_arr = new byte[arr.length];
for(int i = 0; i < arr.length; i ++) {
b_arr[i] = (byte) arr[i];
}
byte[] b_md5 = md.digest(b_arr);
StringBuffer sb = new StringBuffer();
for(int i = 0; i < b_md5.length; i ++) {
int tem = ((int)b_md5[i]) & 0xff;
if(tem < 16) {
sb.append("0");
}
sb.append(Integer.toHexString(tem));
}
return sb.toString();
}
//逆向加密
public static String reverse(String str) {
char[] c = str.toCharArray();
for(int i = 0; i < c.length; i ++) {
c[i] = (char)(c[i]^'t');
}
return new String(c);
}
}