zoukankan      html  css  js  c++  java
  • base64md5dict

    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("
    ");
    		}
    		bw.close();
    	}
    }
    
  • 相关阅读:
    人生十鉴
    ASP.NET MVC 3 Preview 1 发布
    基于IPagedList 的 Asp.Net MVC 分页
    jenkins 更改用户
    MATLAB常用日期和时间函数
    Could not load file or assembly 'AjaxControlToolkit' or one of its dependencies. 错误解决
    ORA00932: inconsistent datatypes: expected A got B
    几种数据库的大数据批量插入
    水晶报表 无效索引。 (异常来自 HRESULT:0x8002000B (DISP_E_BADINDEX))错误的解决
    oracle 更新多条数据
  • 原文地址:https://www.cnblogs.com/wmiot/p/11234270.html
Copyright © 2011-2022 走看看