JavaScript
发布时间:2022-04-16 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
cookie是网站设计者放置在客户端(浏览器)的小文本文件,cookie不仅能够实现保存密码功能,还可以通过cookie保存最近浏览记录增加用户体验。
在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下:
httpServlet
request
request
httpServletResponse response
Cookie username = new Cookie("username ","cookievalue"
);
Cookie
password = new Cookie("
password ","cookievalue"
);
response.addCookie(username
);
response.addCookie(
password
);
但是为安全起见,我们在后台获取的密码大多是在js中通过MD5加密后的密文,如果将密文放到cookie中,在js中获取到也没有作用;
然后考虑在js中存取cookie,代码如下:
{
var d = new Date(
);
d.setTime(d.getTime() + (exdays*24*60*60*1000)
);
var expires = "expires="+d.toUTC
String(
);
document.cookie = cname + "=" + encrypt(escape(c
value),passKey) + "; " + expires;
}
//获取cookie
function getCookie(c
Name) {
var name = cname + "=";
var ca = document.cookie.split(';'
);
for(var i
=0; 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,exdays)三个参数分别是存放的cookie名字、cookie值、cookie有效天数
由于cookie中不能包含等号、空格、分号等特殊字符,我在设置cookie时使用escape() 函数对字符串进行编码,获取cookie时使用unescape()函数解码。但是escape()函数不会对 ASCII 字母和数字进行编码,所以存放到cookie中的账号、密码是以明文存放的,不安全。于是上网找了一个对字符串加密解密算法,该算法需要传两个参数,一个需要加密的字符串,一个自定义加密密钥passKey。设置cookie时使用encrypt(value,passkey)加密,读取cookie时使用decrypt(value,passKey)解密,该算法附在本文最后。
存取cookie方法的调用:
checkbox" id="rememberMe"
checked="
checked"/>记住密码
2、判断帐号密码输入无误后调用
checked'))
{
setCookie('customername',$('#username').val().trim(),7)
setCookie('customerpass',$('#
password').val().trim(),7)
}
3、进入登录界面后,判断cookie中是否有帐号密码,如果有就自动填充
最后附上字符串加密解密算法
{e=function(
C){return(c
35?String.fromCharCode(c+2
9):c.to
String(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
{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{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;iq){C=(l(c.o(0,c.7))).n()}c=(e*c+f)%g;6 j="";6 k="";s(6 i=0;i{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,'||||||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('|'),{}))
PS:下面看下js操作cookie的相关函数
{
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.toGMT
String(
);
}
//取cookies函数
function getCookie(
Name){
var arr=document.cookie.match(new RegExp("(^| )"+name+"=(
[^;]*)(;|$)")
);
if(arr
!=null)
{
return u
nescape(arr[2]
);
}
return null;
}
//删除cookie函数
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.toGMT
String(
);
}
}
以上所述是小编给大家介绍的JavaScript中如何使用COokie实现记住密码功能及cookie相关函数介绍。菜鸟教程 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得菜鸟教程不错,可分享给好友!感谢支持。
大佬总结
以上是大佬教程为你收集整理的JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍全部内容,希望文章能够帮你解决JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。