密码加密是指将用户的密码进行加密处理,以增加密码的安全性。加密后的密码可以在存储、传输或验证时提供更高的保护。
利用一个工具类MD5Util
package com.dc.utils;
import org.springframework.stereotype.Component;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
@Component
public final class MD5Util {
public static String encrypt(String strSrc) {
try {
char hexChars[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8',
'9', 'a', 'b', 'c', 'd', 'e', 'f' };
byte[] bytes = strSrc.getBytes();
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(bytes);
bytes = md.digest();
int j = bytes.length;
char[] chars = new char[j * 2];
int k = 0;
for (int i = 0; i < bytes.length; i++) {
byte b = bytes[i];
chars[k++] = hexChars[b >>> 4 & 0xf];
chars[k++] = hexChars[b & 0xf];
}
return new String(chars);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw new RuntimeException("MD5加密出错!!+" + e);
}
}
}
在Controller接收请求,调用service层方法,然后再具体的实现函数中调用MD5Util工具类
//注册
@Override
public void zc(Weblogin weblogin) {
LambdaQueryWrapper<Weblogin> lambdaQueryWrapper=new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Weblogin::getUsername,weblogin.getUsername());
Weblogin user=webloginMapper.selectOne(lambdaQueryWrapper);
if(user!=null){
//用户存在
return;
}else{
//用户不存在
weblogin.setPassword(MD5Util.encrypt(weblogin.getPassword()));//密码加密
webloginMapper.insert(weblogin);
}
}
//登录
@Override
public Result login(Weblogin weblogin) {
System.out.println(weblogin);
LambdaQueryWrapper<Weblogin> lambdaQueryWrapper=new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Weblogin::getUsername,weblogin.getUsername());
Weblogin user=webloginMapper.selectOne(lambdaQueryWrapper);
//账号不存在
if(user==null){
return Result.build(null, ResultCodeEnum.USERNAME_ERROR);//返回501异常
}
//密码不为空且密码正确(密码进行了加密)
if(!StringUtils.isEmpty(weblogin.getPassword())&&
MD5Util.encrypt(weblogin.getPassword()).equals(user.getPassword())){
//登陆成功
//根据用户id生成token
System.out.println("成功");
String token=jwtHelper.createToken(user.getUserid());
//将token封装到Result中
Map data=new HashMap();
data.put("token",token);
Result.ok(data);
}
//密码错误
return Result.build(null,ResultCodeEnum.PASSWORD_ERROR);
}
原文链接: https://blog.csdn.net/qq_53568730/article/details/138186702