php js记住密码功能,js中利用cookie实现记住密码功能

本文探讨了如何在Java后端利用MD5加密保护用户密码,避免明文存储在cookie中。作者介绍了设置和获取cookie的方法,以及遇到的安全挑战,并分享了一种字符串加密解密算法的应用。最终,文章关注了如何在登录界面实现自动填充功能,兼顾了安全和用户体验。
摘要由CSDN通过智能技术生成

在登录界面添加记住密码功能,我首先想到的是在java后台中调用cookie存放账号密码,大致如下:HttpServletRequest 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,代码如下://设置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

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方法的调用:

1、定义checkbox

记住密码

2、判断帐号密码输入无误后调用if($('#rememberMe').is(':checked')){

setCookie('customername', $('#username').val().trim(), 7)

setCookie('customerpass', $('#password').val().trim(), 7)

}

3、进入登录界面后,判断cookie中是否有帐号密码,如果有就自动填充$(function(){

//获取cookie

var cusername = getCookie('customername');

var cpassword = getCookie('customerpass');

if(cusername != "" && cpassword != ""){

$("#username").val(cusername);

$("#password").val(cpassword);

}

}

相关标签:js

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值