로그인 인터페이스에 비밀번호 기억 기능을 추가하기 위해 가장 먼저 생각한 것은 대략 다음과 같이 자바 백그라운드에서 쿠키를 호출하여 계정 비밀번호를 저장하는 것이었습니다.
HttpServletRequest request HttpServletResponse response Cookie username = new Cookie("username ","cookievalue"); Cookie password = new Cookie("password ","cookievalue"); response.addCookie(username ); response.addCookie(password );
하지만 보안상의 이유로 우리가 백그라운드에서 얻는 대부분의 비밀번호는 js의 MD5로 암호화된 암호문입니다. 암호문을 쿠키에 넣으면 들어가도 아무 효과가 없습니다.
그런 다음 js에서 쿠키에 액세스하는 것을 고려하십시오. 코드는 다음과 같습니다.
//设置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); }
쿠키 값, 쿠키 유효 기간
쿠키에는 다음과 같은 특수 문자가 포함될 수 없습니다. 등호, 공백 및 세미콜론을 사용하여 쿠키를 설정할 때 문자열을 인코딩하고 쿠키를 가져올 때 unescape() 함수를 사용합니다. 그러나 escape() 함수는 ASCII 문자와 숫자를 인코딩하지 않으므로 쿠키에 저장된 계좌번호와 비밀번호는 일반 텍스트로 저장되므로 안전하지 않습니다. 그래서 문자열을 암호화하고 해독하는 알고리즘을 찾기 위해 온라인에 접속했습니다. 이 알고리즘을 사용하려면 암호화해야 하는 문자열과 사용자 지정 암호화 키 passKey라는 두 개의 매개 변수를 전달해야 합니다. 쿠키를 설정할 때 암호화하려면 encrypt(value, passkey)를 사용하고, 쿠키를 읽을 때 복호화하려면 decrypt(value, passKey)를 사용하세요. 알고리즘은 이 글 끝에 첨부되어 있습니다.
쿠키 접근 방법 호출:
1. 체크박스 정의
비밀번호
2. 계정 비밀번호가 올바르게 입력되었는지 확인한 후
if($('#rememberMe').is(':checked')){ setCookie('customername', $('#username').val().trim(), 7) setCookie('customerpass', $('#password').val().trim(), 7) }
을 호출합니다. 쿠키 유무 확인 계정과 비밀번호가 있는 경우 자동으로 입력
$(function(){ //获取cookie var cusername = getCookie('customername'); var cpassword = getCookie('customerpass'); if(cusername != "" && cpassword != ""){ $("#username").val(cusername); $("#password").val(cpassword); } }