1、base64md5dict
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.security.MessageDigest;
import java.util.ArrayList;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class base64md5dict {
private static String fun(String password){
String base64Encode=encode64(password);//base64编码
String md5Encode=md5Encode(password);//md5编码
int count =base64Encode.length()/4;
String encryptPassword="";
for(int i=0;i<4;i++){
encryptPassword=encryptPassword+md5Encode.substring(i*8, i*8+8);
encryptPassword=encryptPassword+base64Encode.substring(i*count, i*count+count);
}
return encryptPassword;
}
private static String encode64(String str){//base64编码
byte[] b = null;
String s = null;
try{
b = str.getBytes("utf-8");
}catch (Exception e){
e.printStackTrace();
}
if (b != null){
s = new BASE64Encoder().encode(b);
}
return s;
}
private static String md5Encode(String text){//md5编码
try{
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(text.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++){
i = b[offset];
if (i < 0){
i += 256;
}
if (i < 16){
buf.append("0");
}
buf.append(Integer.toHexString(i));
}
return buf.toString(); // 32位加密
//return buf.toString().substring(8, 24); // 16位加密
}catch (Exception e){
e.printStackTrace();
return null;
}
}
public static void main(String[] args) throws IOException {
ArrayList<String> list = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("D:\\dict\\old.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\dict\\newbase64md5.txt"));
String line;
while((line=br.readLine())!=null){
list.add(line);
}
br.close();
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
for(int i=0;i<list.size();i++){
bw.write(fun(list.get(i)));
bw.write("\r\n");
}
bw.close();
}
}