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 @ 2022-02-25 15:56  园子里的全栈攻城狮  阅读(2084)  评论(0编辑  收藏  举报