密码两次MD5加密加盐 Java自写MD5加密工具类

自写MD5密码加密工具类
获取用户输入的密码后
定义第一次加密salt
和密码进行拼装后进行第一次MD5加密
然后将第一次加密后的值,和随机生成的saltDB进行第二次加密
**注:**第二次加密所需要的saltDB也可写为固定的值,
若saltDB为随机生成,应与用户信息一起存到数据库中,以免丢失。

MD5两次加密
首先先导入依赖

 
        commons-codec
        commons-codec
    
    
        org.apache.commons
        commons-lang3
        3.6
    

现在开始写一个MD5的工具类

package com.xcl.util;

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

/**
 * MD5Util
 *密码md5加密
 * @author 徐长乐
 * @date 2019/8/5
 */
public class MD5Util {
    //使用依赖工具类中MD5方法  
    public static  String md5(String str){
        return DigestUtils.md5Hex(str);
    }
    //定义第一次加盐   
      private  static  final String salt="1a2b3c4d";
 // 将盐值 和表单中输入密码实现拼装后 MD5加密并返回
    public static String inputPassFormPass(String inputpass){
        String str=""+salt.charAt(0)+salt.charAt(2)+inputpass+salt.charAt(5)+salt.charAt(4);
        return  md5(str);
    }
    //第二次加密并返回        salt可为生成的随机数
    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 input ,String saltDB){
        String formPass=inputPassFormPass(input);
        String dbPass=formpassToDBPass(formPass,saltDB);
        return dbPass;
    }
//test
    public static void main(String[] args) {
        System.out.println(inputPassToDBPass("123456","1a2b3c4d"));
    }
}

当获取密码后 ,可直接调用工具类中的 inputPassToDBPass(String input ,String saltDB)方法 input为用户输入的密码,saltDB为盐值,推荐使用随机生成的盐值,并存到数据库中与用户一一对应,使一个用户对应一个盐值。

你可能感兴趣的:(入门级)