zoukankan      html  css  js  c++  java
  • 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"));
        }
    }
    

      

  • 相关阅读:
    Android开发 使用 adb logcat 显示 Android 日志
    【嵌入式开发】向开发板中烧写Linux系统-型号S3C6410
    C语言 结构体相关 函数 指针 数组
    C语言 命令行参数 函数指针 gdb调试
    C语言 指针数组 多维数组
    Ubuntu 基础操作 基础命令 热键 man手册使用 关机 重启等命令使用
    C语言 内存分配 地址 指针 数组 参数 实例解析
    CRT 环境变量注意事项
    hadoop 输出文件 key val 分隔符
    com.mysql.jdbc.exceptions.MySQLNonTransientConnectionException: Too many connections
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/10761777.html
Copyright © 2011-2022 走看看