Java语言中用于MD5两次加密的工具类

最近想整理一套关于各种简单的工具类,下面先从基础开始.有任何问题欢迎指正:

package com.zcsj.sckill.until;
import org.apache.commons.codec.digest.DigestUtils;

public class MD5Util {
    public static String md5(String src){
        return DigestUtils.md5Hex(src);
    }

    // 用于生成MD5 密码的工具类
    private  static final String salt="1a2b3c4d";


    /** 第一次md5 :
     * 用于 通过输入的密码生成 传输的密码 :方法 通过固定盐值和明文密码之间的拼接在生成md5
     */
 public static String inputPassToFormPass(String inputPass){
        String str=""+salt.charAt(0)+salt.charAt(2)+inputPass+salt.charAt(5)+salt.charAt(4);//12123456c3
        return md5(str);
    }
        /**
         * 第二次md5 : 通过输入的密码和数据库随机盐值 继续生成 密码
        */
    public static String fromPassToDBPass(String fromPass,String salt){
        String str=""+salt.charAt(0)+salt.charAt(2)+fromPass+salt.charAt(5)+salt.charAt(4);//12123456c3
        return md5(str);
    }
    public  static String inputPassToDBPass(String inputPass,String saltDB){
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = fromPassToDBPass(formPass, salt);
        return  dbPass;
    }
    public static void main(String[] args) {
        System.out.println(inputPassToDBPass("123456","1a2b3c4d"));
    }


}

第一次 (前端,客户端):密码加密是(明文密码+固定盐值)生成md5用于传输

第二次(前端,服务器) 在服务端再次加密,当获取到前端发送来的密码后。通过MD5(密码+随机盐值)再次生成密码后存入数据库。

 

你可能感兴趣的:(Java)