用户加密漏洞
This commit is contained in:
parent
a74db9ac70
commit
661bd5c028
|
|
@ -1,6 +1,9 @@
|
|||
package com.bonus.sgzb.auth.controller;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.spec.IvParameterSpec;
|
||||
import javax.crypto.spec.SecretKeySpec;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.bonus.sgzb.auth.form.*;
|
||||
|
|
@ -23,6 +26,8 @@ import com.bonus.sgzb.common.security.service.TokenService;
|
|||
import com.bonus.sgzb.common.security.utils.SecurityUtils;
|
||||
import com.bonus.sgzb.system.api.model.LoginUser;
|
||||
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
|
@ -54,9 +59,24 @@ public class TokenController {
|
|||
|
||||
//web端登录
|
||||
@PostMapping("login")
|
||||
public R<?> login(@RequestBody LoginBody form) {
|
||||
public R<?> login(@RequestBody LoginBody form) throws Exception {
|
||||
// 定义密钥
|
||||
String key = "CCNXrpassWordKey";
|
||||
byte[] encryptedBytes = Base64.getDecoder().decode(form.getPassword());
|
||||
byte[] iv = new byte[16];
|
||||
System.arraycopy(encryptedBytes, 0, iv, 0, iv.length);
|
||||
|
||||
byte[] cipherText = new byte[encryptedBytes.length - iv.length];
|
||||
System.arraycopy(encryptedBytes, iv.length, cipherText, 0, cipherText.length);
|
||||
|
||||
SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(StandardCharsets.UTF_8), "AES");
|
||||
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
|
||||
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(iv));
|
||||
|
||||
byte[] decryptedBytes = cipher.doFinal(cipherText);
|
||||
String decryptedData = new String(decryptedBytes, StandardCharsets.UTF_8);
|
||||
// 用户登录
|
||||
LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword());
|
||||
LoginUser userInfo = sysLoginService.login(form.getUsername(), decryptedData);
|
||||
String uuid = form.getUuid();
|
||||
String captcha = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid).toString();
|
||||
if (StringUtils.isBlank(captcha)) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue