整了一下午的测试,运行正常
1.80个字符测试 ,中文测试正常
2.循环500次正常,且速度级别快 比md5快
abcdef加密变成 abb4a6b4c7d6e8f5s6
abc加密变为anb2a2b5c6b6
1504520787714abcdef94984516>>1504520787714abcdef94984516>>>1r5318590446582607738679741144a3b3c6d4e1f29247968648541764a1>=>true
public static String simpleDecode(String s){
if("".equals(s)||null==s){
return "";
}
if(s.length()<2){
return ""+s;
}
// apb2a3b3c9d2e5f8a9
//去除首个字母
s=s.substring(4,s.length()-2);
String end="";
for(int i=0;i<s.length();i++){
if(i%2==0){
end=end+s.charAt(i);
}
}
return ""+end;
}
/**
* 简单加密
* @param s
* @return
*/
public static String simpleEncode(String s){
if("".equals(s)||null==s){
return "";
}
if(s.length()<2){
return ""+s;
}
String end="";
String testa="";
String test="";
//首先加1个随机字符
testa=""+"abcdefghijklmnopqrstuvwxyz".charAt((int)(Math.random() * 26));
s=s+testa;
//从第一个程序开始
for(int i=s.length()-1;i>0;i--){
testa=""+"abcdefghijklmnopqrstuvwxyz".charAt((int)(Math.random() * 26));
testa=testa+s.charAt(i);
}testa=s.charAt(0)+testa;
end=""+s.hashCode();
testa=testa+end.substring(end.length()-1,end.length());
test=testa;
for(int i=0;i<s.length();i++){
end=""+Math.random();
end=end.substring(end.length()-1,end.length());
test=test+s.charAt(i)+end;
}
return test;
}
public static void main(String[] arg){
Md5 md5 = new Md5();
// abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1abcd1
long l=0;String tmp, b="";
String current="";
for(int i=0;i<10000;i++){
l=System.currentTimeMillis(); current=System.currentTimeMillis()+""+"abcdef"+i*i;
b=md5.simpleEncode(current);
tmp=md5.simpleDecode(b);
// System.out.println(""+(System.currentTimeMillis()-l)+tmp+">>>"+ b);
System.out.println(""+current+">>"+tmp+">>>"+ b+">=>"+(tmp.equals(current)));
// System.out.println("Md5.main()"+md5.simple("中国"+(i+100000000)));
}
// System.out.println(md5.getMD5ofStr("admin1314159"));
}