vue 登录 + 记住密码 + 密码加密解密

<template>
  <el-form :model="ruleForm">
    <h3 class="title">系统登录</h3>
    <el-form-item prop="mobile">
      <el-input type="text" v-model="ruleForm.mobile" auto-complete="off" placeholder="账号"></el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input type="password" v-model="ruleForm.password" auto-complete="off" placeholder="密码"></el-input>
    </el-form-item>
    <el-checkbox v-model="checked" checked>记住密码</el-checkbox>
    <el-form-item>
      <el-button type="primary" @click.native.prevent="handleSubmit">登录</el-button>
    </el-form-item>
  </el-form>
</template>
<script>
    import { apis } from ‘../uitl/config‘
    import CryptoJS from ‘crypto-js‘ //加密js
    export default {
        data() {
            return {
                ruleForm: {
                    mobile: ‘‘, //账号
                    password: ‘‘ //密码
                },
                checked: true //是否选中记住密码 true为选中
            };
        },
        methods:{
            //登录方法
            handleSubmit() {
                var that = this;
                let loginParams = {
                   mobile: this.ruleForm.mobile, //获取账号
                   password: this.ruleForm.password //获取密码
                };
                //登录请求
                that.$axios.post(`${api}/auth/login`,loginParams).then((res)=>{
                    if(res.data.errCode == 0){
                        console.log(‘登录成功‘)
                        if (that.checked == true) {
                            //传入账号,密码,保存天数
                            that.setCookie(that.ruleForm.mobile, that.ruleForm.password, 7);
                        } else {
                            //清空Cookie
                            that.clearCookie();
                        }
                        //跳转路由
                        that.$router.push({ path: ‘/index‘ });
                    }else{
                        console.log(‘登录失败‘)
                    }
                })
            },
            //设置cookie方法
            setCookie(mobile, password, days) {
                var text = CryptoJS.AES.encrypt(password, ‘secret key 123‘);//使用CryptoJS方法加密
                var saveDays = new Date(); //获取时间
                saveDays.setTime(exdate.getTime() + 24 * 60 * 60 * 1000 * days); //保存的天数
                //字符串拼接存入cookie
                window.document.cookie = "mobile" + "=" + mobile + ";path=/;saveDays=" + saveDays.toGMTString();
                window.document.cookie = "password" + "=" + text + ";path=/;saveDays=" + saveDays.toGMTString();
            },
            //读取cookie
            getCookie() {
                if (document.cookie.length > 0) {
                    var arr = document.cookie.split(‘; ‘); //这里显示的格式需要切割一下自己可输出看下
                    for (var i = 0; i < arr.length; i++) {
                        var arr2 = arr[i].split(‘=‘); //再次切割
                        //这里会切割出以mobile为第0项的数组、以password为第0项的数组,判断查找相对应的值
                        if (arr2[0] == ‘mobile‘) {
                            this.ruleForm.mobile = arr2[1]; //拿到账号
                        } else if (arr2[0] == ‘password‘) {
                            //拿到拿到加密后的密码arr2[1]并解密
                            var bytes = CryptoJS.AES.decrypt(arr2[1].toString(), ‘secret key 123‘);
                            var plaintext = bytes.toString(CryptoJS.enc.Utf8); //拿到解密后的密码(登录时输入的密码)
                            this.ruleForm.password = plaintext;
                        }
                    }
                }
            },
            //清除cookie
            clearCookie() {
                this.setCookie("", "", 0); //账号密码置空,天数置0
            }
        }
    }
</script>

需要装加密插件

pm install crypto-js

原文地址:https://www.cnblogs.com/ll15888/p/11398424.html

时间: 2024-08-04 10:09:43

vue 登录 + 记住密码 + 密码加密解密的相关文章

将 Shiro 作为应用的权限基础 五:密码的加密/解密在Spring中的应用

考虑系统密码的安全,目前大多数系统都不会把密码以明文的形式存放到数据库中. 一把会采取以下几种方式对密码进行处理 密码的存储 "编码"存储 Shiro 提供了 base64和 16 进制字符串编码/解码的 API支持,方便一些编码解码操作. Shiro内部的一些数据的存储/表示都使用了 base64和 16 进制字符串. 下面两端代码分别对其进行演示 Stringstr = "hello"; Stringbase64Encoded = Base64.encodeTo

Jquery 实现 “下次自动登录” 记住用户名密码功能

转载自:http://blog.csdn.net/aspnet_lyc/article/details/12030039?utm_source=tuicool&utm_medium=referral Jquery将用户名密码存储到cookie中 需要导入jquery.js和jquery.cookie.js <html> <head> <title>test cookie</title> <script src="Scripts/jqu

SharedPreferences实现自动登录记住用户名密码

最近Android项目需要一个自动登录功能,完成之后,特总结一下,此功能依靠SharedPreferences进行实现. SharedPreferences简介 SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息.其存储位置在/data/data/<包名>/shared_prefs目录下.SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现

[原创]K8Cscan4.0之Base64/HEX密码批量加密解密插件以及源码

前言 今天抽空更新了Cscan,新增对C#编译的EXE动态调用,新增对PowerShell脚本动态调用(无论是否安装PowerShell) 增加一个字符串列表str.txt,用于存放任意字符串,比如帐号密码.路径.后台字典等等,关键看你编写的插件功能. 本文以Base64和Hex加解密为例,演示4.0版本对C# EXE的调用以及对PowerShell的调用,让大家更好的定制功能 C#编译的exe插件名称为netscan.exe,加载优先级次于netscan.dll,PowerShell插件名称为

C#对字符串的简单加密解密过程C#的SQL数据库登陆密码的加密解密加密还原直接复制代码使用即可

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Security.Cryptography; using System.IO; namespace PDAPrint { class ClassSecurityString { public static string encryptKey = "www.hanma-scan.com"; /

各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

普通hash函数如md5.sha1.base64等都是不可逆函数.虽然我们利用php可以利用这些函数写出可逆函数来.但是跨语言时这类可逆函数非常难搞定.所以这时尽量使用AES DES RC4 Rabbit TripleDes这些方法. 包含超时的加密解密函数 1 /** 2 * 加密 3 * @param string $string 要加密或解密的字符串 4 * @param string $operation 加密 '' 解密 DECODE 5 * @param string $key 密钥

vue中使用cookies和crypto-js实现记住密码和加密

不多BB,搞快.搞快. 使用crypto-js加解密 第一步,安装 npm install crypto-js 第二步,在你需要的vue组件内import import CryptoJS from "crypto-js"; 第三步,使用 // Encrypt 加密 var cipherText = CryptoJS.AES.encrypt( "my message", "secretkey123" ).toString(); console.lo

Java 关于密码处理的工具类[MD5编码][AES加密/解密]

项目中又遇到了加密问题,又去翻了半天,然后做测试,干脆就把常用的两类小结一下. 1.第一种所谓的MD5加密 其实也不算加密,只是基于Hash算法的不可逆编码而已,等于说,一旦经过MD5处理,是不可能从编码后的字符串反推回去的. MD5的方法是基于散列的.本身信息不全.理论上是不能还原成唯一字符串的. 网上所谓的解密,也只是拥有一个足够大的字典映射,将编码前的源字符和编码后的目标字符关联起来而已,大多数常见的还行,复杂点的估计就会话费很长时间,有兴趣的可以试试. 至于MD5的用法,在初次录入的时候

cookie实现记住登录名和密码

在最近学习的session作用域中,顺便了解了一下cookie, session是存放在服务器中,而cookie是存放在客户端中. 本篇文章主要是使用cookie来实现记住密码的功能. 简单的login.jsp页面的代码: 在这里解释一下第二行的s标签,我是使用struts2框架做的.就简单的servelet和jsp可以实现同样的功能 login.jsp 1 <%@ page language="java" import="java.util.*" pageE