jeecgboot前后端加密传输(登录)
参考地址:
1.后台登录接口得参数获取和解密
文件地址:jeecg-boot-module-system\src\main\java\org\jeecg\modules\system\controller\LoginController.java
-
导入aes加密处理类:AesEncryptUtil;
import org.jeecg.common.util.encryption.AesEncryptUtil;
-
用户名和代码得解密获取:部分代码如下
@ApiOperation("登录接口") @RequestMapping(value = "/login", method = RequestMethod.POST) public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel){ public Result<JSONObject> login(@RequestBody SysLoginModel sysLoginModel) throws Exception { Result<JSONObject> result = new Result<JSONObject>(); String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword(); /*String username = sysLoginModel.getUsername(); String password = sysLoginModel.getPassword();*/ //后台得解密 String username = AesEncryptUtil.desEncrypt(sysLoginModel.getUsername(),EncryptedString.key,EncryptedString.iv).trim(); String password = AesEncryptUtil.desEncrypt(sysLoginModel.getPassword(),EncryptedString.key,EncryptedString.iv).trim();
2.前端加密传输
文件地址:\src\views\user\Login.vue
-
data 添加变量,存储加密用到的key和iv:
Encrypteds:{ key:"", iv:"", },
-
method 添加获取key和iv得方法:
//key iv 得初始化方法 getEncrypteds(){ var me = this; getAction(`/sys/getEncryptedString`).then((res)=>{ me.Encrypteds.key = res.result.key me.Encrypteds.iv = res.result.iv }) },
-
再在登录方法之前调用getEncrypteds()完成初始化:就一行代码,放在loginByUsername()之前就好
//登录 handleSubmit () { let that = this let loginParams = {}; that.loginBtn = true; // 使用账户密码登录 if (that.customActiveKey === 'tab1') { this.getEncrypteds();//调用初始化方法 this.loginByUsername(); } else { this.loginByPhone() } },
-
username 和password得加密传输
username: encryption(this.model.username,this.Encrypteds.key,this.Encrypteds.iv), password: encryption(this.model.password,this.Encrypteds.key,this.Encrypteds.iv),