赞
踩
两次MD5加密
用户端MD5加密是为了防止用户密码在网络中明文传输,服务端MD5加密是为了提高密码安全性,双 重保险。
引入pom.xml 工具包
<!-- md5 依赖 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
编写MD5工具类
MD5Util.java
package com.xxxx.seckill.utils; import org.apache.commons.codec.digest.DigestUtils; import org.springframework.stereotype.Component; /** * @Author xiaokaixin * @Date 2021/9/27 20:19 * @Version 1.0 */ @Component public class MD5Util { //md5加密 public static String md5(String src){ return DigestUtils.md5Hex(src); } //准备盐 private static final String salt = "1a2b3c4d"; //第一次输入进行加密 public static String inputPassToFromPass(String inputPass){ String str = ""+salt.charAt(0)+salt.charAt(2)+inputPass+salt.charAt(5)+salt.charAt(4); return md5(str); } /** * 后端保存到数据库的密码进行第二次加密 * @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); } /** * 后端实际调用的方法 * @param inputPass * @param salt * @return */ public static String inputPassToDBPass(String inputPass,String salt){ String formPass = inputPassToFromPass(inputPass); String dbPass = formPassToDBPass(formPass, salt); return dbPass; } public static void main(String[] args) { //d3b1294a61a07da9b49b6e22b2cbd7f9 第一次加密的密码 System.out.println(inputPassToFromPass("123456")); System.out.println(formPassToDBPass("d3b1294a61a07da9b49b6e22b2cbd7f9","1a2b3c4d")); System.out.println(inputPassToDBPass("123456","1a2b3c4d")); } }
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。