zoukankan      html  css  js  c++  java
  • js中利用cookie实现记住密码功能

    在登录界面添加记住密码功能,代码如下:

    //设置cookie
    var passKey = '4c05c54d952b11e691d76c0b843ea7f9';
    function setCookie(cname, cvalue, exdays) {
        var d = new Date();
        d.setTime(d.getTime() + (exdays*24*60*60*1000));
        var expires = "expires="+d.toUTCString();
        document.cookie = cname + "=" + encrypt(escape(cvalue), passKey) + "; " + expires;
    }
    //获取cookie
    function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for(var i=0; i<ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0)==' ') c = c.substring(1);
            if (c.indexOf(name) != -1){
              var cnameValue = unescape(c.substring(name.length, c.length));
              return decrypt(cnameValue, passKey);
            } 
        }
        return "";
    }
    //清除cookie  
    function clearCookie(cname) {  
        setCookie(cname, "", -1);  
    }

    setCookie(cname, cvalue, exdays)三个参数分别是存放的cookie名字、cookie值、cookie有效天数

    由于cookie中不能包含等号、空格、分号等特殊字符,我在设置cookie时使用escape() 函数对字符串进行编码,获取cookie时使用unescape()函数解码。但是escape()函数不会对 ASCII 字母和数字进行编码,所以存放到cookie中的账号、密码是以明文存放的,不安全。于是上网找了一个对字符串加密解密算法,该算法需要传两个参数,一个需要加密的字符串,一个自定义加密密钥passKey。设置cookie时使用encrypt(value, passkey)加密,读取cookie时使用decrypt(value, passKey)解密,该算法附在本文最后。

    存取cookie方法的调用:

    <input type="checkbox" id="rememberMe" checked="checked"/>记住密码

    存入cookie

    • 判断帐号密码无误后将用户名密码存入cookie
    if($('#rememberMe').is(':checked')){
                 setCookie('customername', $('#username').val().trim(), 7)
                 setCookie('customerpass', $('#password').val().trim(), 7)
               }

    自动填充

    • 进入登录界面后,判断cookie中是否有帐号密码,如果有就自动填充
    $(function(){
    
      //获取cookie
      var cusername = getCookie('customername');
      var cpassword = getCookie('customerpass');
      if(cusername != "" && cpassword != ""){
        $("#username").val(cusername);
        $("#password").val(cpassword);
      }
    }
  • 相关阅读:
    OleDbCommand 的用法
    递归求阶乘
    C#重写窗体的方法
    HDU 5229 ZCC loves strings 博弈
    HDU 5228 ZCC loves straight flush 暴力
    POJ 1330 Nearest Common Ancestors LCA
    HDU 5234 Happy birthday 01背包
    HDU 5233 Gunner II 离散化
    fast-IO
    HDU 5265 pog loves szh II 二分
  • 原文地址:https://www.cnblogs.com/7qin/p/10191408.html
Copyright © 2011-2022 走看看