添加密码加密类以及登录逻辑修改
This commit is contained in:
parent
2c1da7b80b
commit
6b6664763f
|
@ -8,6 +8,7 @@ import com.example.catchTheLetters.entity.User;
|
|||
import com.example.catchTheLetters.model.vo.UserVo;
|
||||
import com.example.catchTheLetters.service.AuthService;
|
||||
import com.example.catchTheLetters.service.RedisService;
|
||||
import com.example.catchTheLetters.utils.DESUtil;
|
||||
import com.example.catchTheLetters.utils.JwtUtil;
|
||||
import com.example.catchTheLetters.utils.R;
|
||||
import jakarta.annotation.Resource;
|
||||
|
@ -30,6 +31,9 @@ public class AuthServiceImpl implements AuthService {
|
|||
@Resource
|
||||
private RedisService redisService;
|
||||
|
||||
@Resource
|
||||
private DESUtil desUtil;
|
||||
|
||||
@Override
|
||||
public R<String> login(LoginDto loginDto) {
|
||||
// 根据用户名查询用户信息
|
||||
|
@ -48,7 +52,8 @@ public class AuthServiceImpl implements AuthService {
|
|||
if (Objects.isNull(user)) {
|
||||
return R.fail("用户不存在");
|
||||
}
|
||||
if (!user.getPassword().equals(loginDto.getPassword())) {
|
||||
String verifyPwd = desUtil.SHA512(loginDto.getPassword());
|
||||
if (!user.getPassword().equals(verifyPwd)) {
|
||||
return R.fail("密码错误");
|
||||
}
|
||||
Map<String, String> map = new HashMap<>();
|
||||
|
@ -111,7 +116,7 @@ public class AuthServiceImpl implements AuthService {
|
|||
}
|
||||
}
|
||||
|
||||
user.setPassword(registerDto.getPassword());
|
||||
user.setPassword(desUtil.SHA512(registerDto.getPassword()));
|
||||
user.setCreateTime(System.currentTimeMillis());
|
||||
user.setUpdateTime(System.currentTimeMillis());
|
||||
var insert = mongoTemplate.insert(user);
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
package com.example.catchTheLetters.utils;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
/**
|
||||
* @author 慕华
|
||||
* @date 2024/4/25
|
||||
* @Version 1.0
|
||||
* @description
|
||||
*/
|
||||
@Component
|
||||
public class DESUtil {
|
||||
/**
|
||||
* 传入文本内容,返回 SHA-256 串
|
||||
* @param strText 传入加密文本
|
||||
* @return 加密后文本
|
||||
*/
|
||||
public String SHA256(final String strText) {
|
||||
return SHA(strText, "SHA-256");
|
||||
}
|
||||
|
||||
/**
|
||||
* 传入文本内容,返回 SHA-512 串
|
||||
*
|
||||
* @param strText 传入加密文本
|
||||
* @return 加密后文本
|
||||
*/
|
||||
public String SHA512(final String strText) {
|
||||
return SHA(strText, "SHA-512");
|
||||
}
|
||||
|
||||
/**
|
||||
* md5加密
|
||||
* @param strText 传入加密文本
|
||||
* @return 加密后文本
|
||||
*/
|
||||
public String SHAMD5(String strText) {
|
||||
return SHA(strText, "MD5");
|
||||
}
|
||||
|
||||
/**
|
||||
* 字符串 SHA 加密
|
||||
*/
|
||||
private String SHA(final String strText, final String strType) {
|
||||
// 返回值
|
||||
String strResult = null;
|
||||
|
||||
// 是否是有效字符串
|
||||
if (strText != null && strText.length() > 0) {
|
||||
try {
|
||||
// SHA 加密开始
|
||||
// 创建加密对象 并传入加密类型
|
||||
MessageDigest messageDigest = MessageDigest.getInstance(strType);
|
||||
// 传入要加密的字符串
|
||||
messageDigest.update(strText.getBytes());
|
||||
// 得到 byte 类型结果
|
||||
byte[] byteBuffer = messageDigest.digest();
|
||||
|
||||
// 将 byte 转换为 string
|
||||
StringBuilder strHexString = new StringBuilder();
|
||||
// 遍历 byte buffer
|
||||
for (byte b : byteBuffer) {
|
||||
String hex = Integer.toHexString(0xff & b);
|
||||
if (hex.length() == 1) {
|
||||
strHexString.append('0');
|
||||
}
|
||||
strHexString.append(hex);
|
||||
}
|
||||
// 得到返回结果
|
||||
strResult = strHexString.toString();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
return strResult;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue