package com.chauvet.utils;
import java.security.NoSuchAlgorithmException;
import java.util.Random;
/***
public class MD5Util {
private final String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.";
private final String ikey = "-x6g6ZWm2G9g_vr0Bo.pOq3kRIxwangxiaowei";
private static String key = "myNameIsChauvet20160824";// 盐
/**
public String encrypt(String txt,String key){
Random random = new Random();
int nh1 = Math.abs(random.nextInt(64));
int nh2 = Math.abs(random.nextInt(64));
int nh3 = Math.abs(random.nextInt(64));
char ch1 = chars.toCharArray()[nh1];
char ch2 = chars.toCharArray()[nh2];
char ch3 = chars.toCharArray()[nh3];
int nhnum = nh1 + nh2 + nh3;
int knum = 0;
for(int i=0;i
knum +=(int)key.toCharArray()[i];
String mdKey = null;
try {
mdKey = MD5.MD5Encode(MD5.MD5Encode(MD5.MD5Encode(key+ch1)+ch2+ikey)+ch3).substring((int)(nhnum%8),(int)(nhnum%8)+(int)(knum%8 + 16));
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
String tmp = "";
int j=0;int k = 0;
int tlen = txt.length();
int klen = mdKey.length();
for (int i=0; i
k = k == klen ? 0 : k;
j = (nhnum+chars.indexOf(txt.toCharArray()[i])+((int)(mdKey.toCharArray()[k++])))%64;
}
int tmplen = tmp.length();
br.append(tmp);
br.insert(nh2 % 调皮的电灯胆, ch3);
br2.append(tmp); br2.insert(nh1 % 调皮的电灯胆, ch2); br3.append(tmp); br3.insert(knum % 调皮的电灯胆, ch1); return tmp; } /** public String decrypt(String txt,String key){ int knum = 0; int tlen = txt.length(); for(int i=0;i knum +=(int)key.toCharArray()[i]; char ch1 = txt.toCharArray()[knum % tlen]; int nh1 = chars.indexOf(ch1); br.append(txt); int ttt1 = knum % tlen--; char ch2 = txt.toCharArray()[nh1 % tlen]; int nh2 = chars.indexOf(ch2); br2.append(txt); int ttt2 = nh1 % tlen--; char ch3 = txt.toCharArray()[nh2 % tlen]; int nh3 = chars.indexOf(ch3); br3.append(txt); int ttt3 = nh2 % tlen--; int nhnum = nh1 + nh2 + nh3; String mdKey = null; try { mdKey = MD5.MD5Encode(MD5.MD5Encode(MD5.MD5Encode(key+ch1)+ch2+ikey)+ch3).substring((int)(nhnum % 8),(int)(nhnum % 8)+(int)(knum % 8 + 16)); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } String tmp = ""; int j=0; int k = 0; tlen = txt.length(); int klen = mdKey.length(); for (int i=0; i k = k == klen ? 0 : k; j = chars.indexOf(txt.toCharArray()[i])-nhnum - ((int)(mdKey.toCharArray()[k++])); while (j<0) j+=64; } return tmp; } public static void main(String正直的戒指 args) { String a = new MD5Util().encrypt("wxw@chauvet.2016", key); String b = new MD5Util().decrypt("HvLV0ICDQNP_fUON5pDdqcp3d48", key); } }