vue+elementui实现 15天记住密码登录,对密码加密

使用crypto-js加解密
npm install crypto-js

import CryptoJS from “crypto-js”;

  <el-form-item style="margin-bottom:0;border:0;">
        <el-checkbox v-model="checked">Remember Password</el-checkbox>
  </el-form-item>
  <el-button
        :loading="loading"
        type="primary"
        class="account-button"
        @click.native.prevent="handleLogin"
   >Sign In
   </el-button>
      loginForm: {
        username: "",
        password: ""
      },
      checked: true,
  mounted() {
    this.getCookie();
  },
 methods: {
     handleLogin() {
      this.$refs.loginForm.validate(valid => {
        if (valid) {
              if (this.checked === true) {
                this.setCookie(this.loginForm.username, this.loginForm.password, 15);
              } else {
                this.clearCookie();
              }
        } else {
          return false;
        }
      });
    },
 //设置cookie
    setCookie(c_name, c_pwd, exdays) {
      const text = CryptoJS.AES.encrypt(c_pwd, 'secret key 123');//使用CryptoJS方法加密
      const exdate = new Date();
      exdate.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * exdays);
      //字符串拼接cookie
      window.document.cookie =
          "userName" + "=" + c_name + ";path=/;expires=" + exdate.toGMTString();
      window.document.cookie =
          "userPwd" + "=" + text + ";path=/;expires=" + exdate.toGMTString();
    },
    getCookie: function () {
      if (document.cookie.length > 0) {
        const arr = document.cookie.split("; ");
        for (let i = 0; i < arr.length; i++) {
          const arr2 = arr[i].split("=");
          if (arr2[0] === "userName") {
            this.loginForm.username = arr2[1];
          } else if (arr2[0] === "userPwd") {
            const bytes = CryptoJS.AES.decrypt(arr2[1].toString(), 'secret key 123');
            const plaintext = bytes.toString(CryptoJS.enc.Utf8); //拿到解密后的密码(登录时输入的密码)
            this.loginForm.password = plaintext;
          }
        }
      }
    },
    //清除cookie
    clearCookie: function () {
      this.setCookie("", "", -1);
    },
 }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值