jeecgboot 前后端加密传输
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),
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?