ログイン インターフェースにパスワードを記憶する機能を追加するために、私が最初に考えたのは、アカウント パスワードを保存するために 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<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 の 2 つのパラメーターを渡す必要があります。 Cookie を設定するときに暗号化するには encrypt(value, passkey) を使用し、Cookie を読み取るときに復号化するには decrypt(value, passKey) を使用します。アルゴリズムはこの記事の最後に添付されています。
Cookie メソッドにアクセスするための呼び出し:
1. チェックボックスを定義します
パスワードを記憶する
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); } }
を自動的に入力します