Heim  >  Artikel  >  Web-Frontend  >  Verwendung von Cookies in js, um die Funktion zur Passworterinnerung zu realisieren

Verwendung von Cookies in js, um die Funktion zur Passworterinnerung zu realisieren

高洛峰
高洛峰Original
2016-12-09 13:23:561524Durchsuche

Um die Funktion „Passwort merken“ zur Anmeldeoberfläche hinzuzufügen, dachte ich zunächst daran, Cookies im Java-Hintergrund aufzurufen, um das Kontopasswort zu speichern, ungefähr wie folgt:

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

Aber aus Sicherheitsgründen sind die meisten Passwörter, die wir im Hintergrund erhalten, durch MD5 in js verschlüsselter Chiffretext. Wenn Sie den Chiffretext in ein Cookie einfügen, hat dies keine Auswirkungen, wenn Sie ihn erhalten js;

Dann erwägen Sie den Zugriff auf Cookies in js. Der Code lautet wie folgt:

//设置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)==&#39; &#39;) 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) Die drei Parameter sind der gespeicherte Cookie-Name, der Cookie-Wert und die Cookie-Gültigkeitstage

Da Cookies keine Sonderzeichen wie Gleichheitszeichen, Leerzeichen und Semikolons enthalten dürfen, verwende ich beim Setzen die Funktion escape(), um die Zeichenfolge zu kodieren das Cookie und verwenden Sie unescape(), wenn Sie die Cookie-Funktionsdekodierung erhalten. Allerdings kodiert die Funktion escape() keine ASCII-Buchstaben und -Zahlen, sodass die im Cookie gespeicherte Kontonummer und das Passwort im Klartext gespeichert werden, was nicht sicher ist. Also ging ich online, um einen Algorithmus zum Verschlüsseln und Entschlüsseln von Zeichenfolgen zu finden. Dieser Algorithmus erfordert die Übergabe von zwei Parametern, einer Zeichenfolge, die verschlüsselt werden muss, und einem benutzerdefinierten Verschlüsselungsschlüssel passKey. Verwenden Sie encrypt(value, passkey) zum Verschlüsseln, wenn Sie ein Cookie setzen, und decrypt(value, passKey), um es zu entschlüsseln, wenn Sie ein Cookie lesen. Der Algorithmus ist am Ende dieses Artikels angehängt.

Aufruf zum Zugriff auf die Cookie-Methode:

1. Kontrollkästchen definieren

5da73d62c71221fbd80c85622b583ed7 Merken das Passwort

2. Nachdem Sie festgestellt haben, dass das Kontopasswort korrekt eingegeben wurde, rufen Sie

3 auf. Stellen Sie fest, ob das Cookie vorhanden ist. Wenn Sie ein Konto und ein Passwort haben, füllen Sie automatisch
if($(&#39;#rememberMe&#39;).is(&#39;:checked&#39;)){
      setCookie(&#39;customername&#39;, $(&#39;#username&#39;).val().trim(), 7)
      setCookie(&#39;customerpass&#39;, $(&#39;#password&#39;).val().trim(), 7)
     }

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn