Java 两次MD5

导入:

import org.apache.commons.codec.digest.DigestUtils;

  代码:

public static String md5(String src) {
		return DigestUtils.md5Hex(src);
	}
	
	private static final String salt = "1a2b3c4d";
	
	public static String inputPassToFormPass(String inputPass) {
		String str = ""+salt.charAt(0)+salt.charAt(2) + inputPass +salt.charAt(5) + salt.charAt(4);
		System.out.println(str);
		return md5(str);
	}
	
	public static String formPassToDBPass(String formPass, String salt) {
		String str = ""+salt.charAt(0)+salt.charAt(2) + formPass +salt.charAt(5) + salt.charAt(4);
		return md5(str);
	}
	
	public static String inputPassToDbPass(String inputPass, String saltDB) {
		String formPass = inputPassToFormPass(inputPass);
		String dbPass = formPassToDBPass(formPass, saltDB);
		return dbPass;
	}

  md5:帮助类

import java.io.File;
import java.io.FileInputStream;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.security.MessageDigest;

/**
 * MD5加密工具类
 */
public class MD5Util {
    private static final char DIGITS[] = { '0', '1', '2', '3', '4', '5', '6',
	    '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };

    /**
     * 获取文件的MD5码
     * 
     * @param absPath
     *            文件路径
     * @return 文件的MD5码
     */
    public final static String getFileMD5(String absPath) {
	try {
	    File file = new File(absPath);
	    MessageDigest mdTemp = MessageDigest.getInstance("MD5");
	    FileInputStream fis = new FileInputStream(file);
	    FileChannel filechannel = fis.getChannel();
	    MappedByteBuffer mbb = filechannel
		    .map(FileChannel.MapMode.READ_ONLY, 0, file.length());
	    mdTemp.update(mbb);
	    byte[] md = mdTemp.digest();
	    int j = md.length;
	    char str[] = new char[j * 2];
	    int k = 0;
	    for (int i = 0; i < j; i++) {
		byte byte0 = md[i];
		str[k++] = DIGITS[byte0 >>> 4 & 0xf];
		str[k++] = DIGITS[byte0 & 0xf];
	    }
	    fis.close();
	    return new String(str);
	} catch (Exception e) {
	    return "";
	}
    }

    /**
     * 获取指定字符串的MD5码
     * 
     * @param s
     *            字符串
     * @return 字符串的MD5码
     */
    public final static String getMD5(String s) {
	char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
		'a', 'b', 'c', 'd', 'e', 'f' };
	try {
	    byte[] strTemp = s.getBytes();
	    MessageDigest mdTemp = MessageDigest.getInstance("MD5");
	    mdTemp.update(strTemp);
	    byte[] md = mdTemp.digest();
	    int j = md.length;
	    char str[] = new char[j * 2];
	    int k = 0;
	    for (int i = 0; i < j; i++) {
		byte byte0 = md[i];
		str[k++] = hexDigits[byte0 >>> 4 & 0xf];
		str[k++] = hexDigits[byte0 & 0xf];
	    }
	    return new String(str);
	} catch (Exception e) {
	    return null;
	}
    }
    
    public static void main(String[] args) {
	System.out.println(getMD5("admin"));
    }
}

  

posted @ 2019-04-24 13:08  石shi  阅读(564)  评论(0编辑  收藏  举报