欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript中如何使用cookie實(shí)現(xiàn)記住密碼功能及cookie相關(guān)函數(shù)介紹

 更新時(shí)間:2016年11月10日 08:46:52   投稿:mrr  
cookie是網(wǎng)站設(shè)計(jì)者放置在客戶端(瀏覽器)的小文本文件,cookie不僅能夠?qū)崿F(xiàn)保存密碼功能,還可以通過(guò)cookie保存最近瀏覽記錄增加用戶體驗(yàn)。本文給大家介紹js使用cookie實(shí)現(xiàn)記住密碼功能及cookie相關(guān)函數(shù)講解,感興趣的朋友一起看看吧

cookie是網(wǎng)站設(shè)計(jì)者放置在客戶端(瀏覽器)的小文本文件,cookie不僅能夠?qū)崿F(xiàn)保存密碼功能,還可以通過(guò)cookie保存最近瀏覽記錄增加用戶體驗(yàn)。

在登錄界面添加記住密碼功能,我首先想到的是在java后臺(tái)中調(diào)用cookie存放賬號(hào)密碼,大致如下:

HttpServletRequest request 
HttpServletResponse response
Cookie username = new Cookie("username ","cookievalue");
Cookie password = new Cookie("password ","cookievalue");
response.addCookie(username );
response.addCookie(password );

但是為安全起見(jiàn),我們?cè)诤笈_(tái)獲取的密碼大多是在js中通過(guò)MD5加密后的密文,如果將密文放到cookie中,在js中獲取到也沒(méi)有作用;

然后考慮在js中存取cookie,代碼如下:

//設(shè)置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)三個(gè)參數(shù)分別是存放的cookie名字、cookie值、cookie有效天數(shù)

由于cookie中不能包含等號(hào)、空格、分號(hào)等特殊字符,我在設(shè)置cookie時(shí)使用escape() 函數(shù)對(duì)字符串進(jìn)行編碼,獲取cookie時(shí)使用unescape()函數(shù)解碼。但是escape()函數(shù)不會(huì)對(duì) ASCII 字母和數(shù)字進(jìn)行編碼,所以存放到cookie中的賬號(hào)、密碼是以明文存放的,不安全。于是上網(wǎng)找了一個(gè)對(duì)字符串加密解密算法,該算法需要傳兩個(gè)參數(shù),一個(gè)需要加密的字符串,一個(gè)自定義加密密鑰passKey。設(shè)置cookie時(shí)使用encrypt(value, passkey)加密,讀取cookie時(shí)使用decrypt(value, passKey)解密,該算法附在本文最后。

存取cookie方法的調(diào)用:

1、定義checkbox

<input type="checkbox" id="rememberMe" checked="checked"/>記住密碼

2、判斷帳號(hào)密碼輸入無(wú)誤后調(diào)用

if($('#rememberMe').is(':checked')){
setCookie('customername', $('#username').val().trim(), 7)
setCookie('customerpass', $('#password').val().trim(), 7)
}

3、進(jìn)入登錄界面后,判斷cookie中是否有帳號(hào)密碼,如果有就自動(dòng)填充

$(function(){
//獲取cookie
var cusername = getCookie('customername');
var cpassword = getCookie('customerpass');
if(cusername != "" && cpassword != ""){
$("#username").val(cusername);
$("#password").val(cpassword);
}
}

最后附上字符串加密解密算法

eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('A G(a,b){x(b==v||b.7<=0){D.y("z R P O");t v}6 c="";s(6 i=0;i<b.7;i++){c+=b.u(i).n()}6 d=m.r(c.7/5);6 e=l(c.9(d)+c.9(d*2)+c.9(d*3)+c.9(d*4)+c.9(d*5));6 f=m.M(b.7/2);6 g=m.B(2,C)-1;x(e<2){D.y("L K J z");t v}6 h=m.F(m.H()*N)%I;c+=h;w(c.7>q){c=(l(c.o(0,q))+l(c.o(q,c.7))).n()}c=(e*c+f)%g;6 j="";6 k="";s(6 i=0;i<a.7;i++){j=l(a.u(i)^m.r((c/g)*E));x(j<p){k+="0"+j.n(p)}Q k+=j.n(p);c=(e*c+f)%g}h=h.n(p);w(h.7<8)h="0"+h;k+=h;t k}A S(a,b){6 c="";s(6 i=0;i<b.7;i++){c+=b.u(i).n()}6 d=m.r(c.7/5);6 e=l(c.9(d)+c.9(d*2)+c.9(d*3)+c.9(d*4)+c.9(d*5));6 f=m.F(b.7/2);6 g=m.B(2,C)-1;6 h=l(a.o(a.7-8,a.7),p);a=a.o(0,a.7-8);c+=h;w(c.7>q){c=(l(c.o(0,q))+l(c.o(q,c.7))).n()}c=(e*c+f)%g;6 j="";6 k="";s(6 i=0;i<a.7;i+=2){j=l(l(a.o(i,i+2),p)^m.r((c/g)*E));k+=T.U(j);c=(e*c+f)%g}t k}',57,57,'||||||var|length||charAt||||||||||||parseInt|Math|toString|substring|16|10|floor|for|return|charCodeAt|null|while|if|log|key|function|pow|31|console|255|round|encrypt|random|100000000|the|change|plesae|ceil|1000000000|empty|be|else|cannot|decrypt|String|fromCharCode'.split('|'),0,{}))

PS:下面看下js操作cookie的相關(guān)函數(shù)

//設(shè)置cookie函數(shù),三個(gè)參數(shù),一個(gè)是cookie的名子,一個(gè)是值,一個(gè)是設(shè)置cookie保存時(shí)間,單位:天
function SetCookie(name,value,days){
 var days=arguments[2]?arguments[2]:30; //此 cookie 將被保存 30 天
 var exp=new Date(); //new Date("December 31, 9998");
 exp.setTime(exp.getTime() + days*86400000);
 document.cookie=name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//取cookies函數(shù)
function getCookie(name){
 var arr=document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
 if(arr!=null){
 return unescape(arr[2]);
 }
 return null;
}
//刪除cookie函數(shù)
function delCookie(name){
 var exp = new Date();
 exp.setTime(exp.getTime() - 1);
 var cval=getCookie(name);
 if(cval!=null){
 document.cookie= name + "="+cval+";expires="+exp.toGMTString();
 }
}

以上所述是小編給大家介紹的JavaScript中如何使用cookie實(shí)現(xiàn)記住密碼功能及cookie相關(guān)函數(shù)介紹,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • require簡(jiǎn)單實(shí)現(xiàn)單頁(yè)應(yīng)用程序(SPA)

    require簡(jiǎn)單實(shí)現(xiàn)單頁(yè)應(yīng)用程序(SPA)

    下面小編就為大家?guī)?lái)一篇require簡(jiǎn)單實(shí)現(xiàn)單頁(yè)應(yīng)用程序(SPA)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07
  • 動(dòng)態(tài)加載js文件簡(jiǎn)單示例

    動(dòng)態(tài)加載js文件簡(jiǎn)單示例

    這篇文章主要介紹了動(dòng)態(tài)加載js文件的方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了JavaScript動(dòng)態(tài)加載的實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2016-04-04
  • 小程序頁(yè)面onload(),onready()加載順序詳解

    小程序頁(yè)面onload(),onready()加載順序詳解

    本文主要介紹了小程序頁(yè)面onload(),onready()加載順序,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • javascript如何返回字符串的所有排列

    javascript如何返回字符串的所有排列

    這篇文章主要介紹了javascript如何返回字符串的所有排列問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 基于JavaScript實(shí)現(xiàn)飄落星星特效

    基于JavaScript實(shí)現(xiàn)飄落星星特效

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)飄落星星特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 小程序和web畫三角形實(shí)現(xiàn)解析

    小程序和web畫三角形實(shí)現(xiàn)解析

    這篇文章主要介紹了小程序和web畫三角形實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • js+css3實(shí)現(xiàn)簡(jiǎn)單時(shí)鐘特效

    js+css3實(shí)現(xiàn)簡(jiǎn)單時(shí)鐘特效

    這篇文章主要為大家詳細(xì)介紹了js+css3實(shí)現(xiàn)簡(jiǎn)單時(shí)鐘特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • 微信小程序入門教程

    微信小程序入門教程

    本篇文章主要介紹了微信小程序入門教程,現(xiàn)在分享給大家,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-11-11
  • 純javascript響應(yīng)式樹(shù)形菜單效果

    純javascript響應(yīng)式樹(shù)形菜單效果

    這篇文章主要為大家分享了純javascript響應(yīng)式樹(shù)形菜單效果的簡(jiǎn)單教程,對(duì)多級(jí)目錄樹(shù)形菜單感興趣的小伙伴們可以參考一下
    2015-11-11
  • JTrackBar水平拖動(dòng)效果

    JTrackBar水平拖動(dòng)效果

    JTrackBar水平拖動(dòng)效果...
    2007-07-07

最新評(píng)論