md5 是一种数据加密,例子是对123456 进行了两次加盐
第一次是 inputPassToFormPass salt是固定的 1a2b3c4d
第二次是 formPassToDBPass salt 正常情况是随机的 存到数据库里的 需要从数据库取出
还可以组合使用 inputPassToDbPass
public class MD5Util { public static String md5(String src) { return DigestUtils.md5Hex(src); } private static final String salt = "1a2b3c4d"; /** * 第一次加salt 固定salt * @param inputPass * @return */ 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); } /** * 第二次加salt 随机salt * @param formPass * @param salt * @return */ 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); } /** * 组合加salt * @param inputPass * @param saltDB * @return */ public static String inputPassToDbPass(String inputPass, String saltDB) { String formPass = inputPassToFormPass(inputPass); String dbPass = formPassToDBPass(formPass, saltDB); return dbPass; } public static void main(String[] args) { System.out.println(inputPassToFormPass("123456"));//d3b1294a61a07da9b49b6e22b2cbd7f9 System.out.println(formPassToDBPass(inputPassToFormPass("123456"), "1a2b3c4d")); System.out.println(inputPassToDbPass("123456", "1a2b3c4d"));//b7797cce01b4b131b433b6acf4add449 } }
以上代码输出
第一次 之后 d3b1294a61a07da9b49b6e22b2cbd7f9
第二次之后 b7797cce01b4b131b433b6acf4add449
12123456c3 d3b1294a61a07da9b49b6e22b2cbd7f9 12123456c3 b7797cce01b4b131b433b6acf4add449 12123456c3 b7797cce01b4b131b433b6acf4add449