jeecgboot 前后端加密传输

jeecgboot前后端加密传输(登录)

参考地址

1.后台登录接口得参数获取和解密

文件地址:jeecg-boot-module-system\src\main\java\org\jeecg\modules\system\controller\LoginController.java

  1. 导入aes加密处理类:AesEncryptUtil;

    import org.jeecg.common.util.encryption.AesEncryptUtil;
    
  2. 用户名和代码得解密获取:部分代码如下

    @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

  1. data 添加变量,存储加密用到的key和iv:

    Encrypteds:{
              key:"",
              iv:"",
            },
    
  2. 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
        })
      },
         
    
  3. 再在登录方法之前调用getEncrypteds()完成初始化:就一行代码,放在loginByUsername()之前就好

    //登录
          handleSubmit () {
            let that = this
            let loginParams = {};
            that.loginBtn = true;
            // 使用账户密码登录
            if (that.customActiveKey === 'tab1') {
              this.getEncrypteds();//调用初始化方法
              this.loginByUsername();
            } else {
              this.loginByPhone()
            }
          }, 
    
  4. username 和password得加密传输

                  username: encryption(this.model.username,this.Encrypteds.key,this.Encrypteds.iv),
                  password: encryption(this.model.password,this.Encrypteds.key,this.Encrypteds.iv),
    
posted @   园子里的全栈攻城狮  阅读(2490)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示