Bei der Arbeit an einem alten Projekt habe ich heute eine Anforderung gestoßen. Ich habe die Parameter in der URL in JavaScript verschlüsselt und entschlüsselt und diesen nützlichen Code aus dem Internet gefunden:
Die Codekopie lautet wie folgt:
<Script Language = "JavaScript">
<!- Beginnen Sie
Funktion Encrypt (str, pwd) {
if (str == "") return "";
STR = Escape (str);
if (! pwd || pwd == "") {var pwd = "1234"; }
PWD = Escape (PWD);
if (pwd == null || pwd.length <= 0) {
ALERT ("Bitte geben Sie ein Passwort ein, mit dem die Nachricht verschlüsselt wird.");
null zurückkehren;
}
var prand = "";
für (var i = 0; i <pwd.length; i ++) {
prand += pwd.charCodeat (i) .ToString ();
}
var spos = math.floor (prand.length / 5);
var mult = parseInt (prand.charat (spos) + prand.charat (spos*2) + prand.charat (spos*3) + prand.charat (spos*4) + prand.charat (Spos*5));
var incr = math.ceil (pwd.length / 2);
var modul = math.pow (2, 31) - 1;
if (mult <2) {
ALERT ("Algorithmus kann keinen geeigneten Hash finden. Bitte wählen Sie ein anderes Passwort.
null zurückkehren;
}
var salt = math.round (math.random () * 100000000) % 100000000;
Prand += Salz;
while (prand.length> 10) {
Prand = (ParseInt (Prand.Substring (0, 10)) + ParseInt (Prand.Substring (10, Prand.Length))). toString ();
}
prand = (mult * prand + incher) % modul;
var Enc_chr = "";
var Enc_str = "";
für (var i = 0; i <str.length; i ++) {
ENC_CHR = PARSININT (str.charCodeat (i) ^ math.floor ((prand/modul) * 255));
if (Enc_chr <16) {
Enc_str + = "0" + Enc_chr.toString (16);
}anders
Enc_str += Enc_chr.toString (16);
prand = (mult * prand + incher) % modul;
}
salz = salz.tostring (16);
while (salt.length <8) salz = "0" + Salz;
Enc_str += Salz;
return Enc_str;
}
Funktion entschlüsselt (str, pwd) {
if (str == "") return "";
if (! pwd || pwd == "") {var pwd = "1234"; }
PWD = Escape (PWD);
if (str == null || str.length <8) {
ALERT ("Ein Salzwert konnte nicht aus der verschlüsselten Nachricht extrahiert werden, da die Länge zu kurz ist. Die Nachricht kann nicht entschlüsselt werden.");
zurückkehren;
}
if (pwd == null || pwd.length <= 0) {
ALERT ("Bitte geben Sie ein Passwort ein, mit dem die Nachricht entschlüsselt wird.");
zurückkehren;
}
var prand = "";
für (var i = 0; i <pwd.length; i ++) {
prand += pwd.charCodeat (i) .ToString ();
}
var spos = math.floor (prand.length / 5);
var mult = parseInt (prand.charat (spos) + prand.charat (spos*2) + prand.charat (spos*3) + prand.charat (spos*4) + prand.charat (Spos*5));
var incr = math.round (pwd.length / 2);
var modul = math.pow (2, 31) - 1;
var salt = parseInt (str.substring (str.length - 8, str. Length), 16);
str = str.substring (0, str.length - 8);
Prand += Salz;
while (prand.length> 10) {
Prand = (ParseInt (Prand.Substring (0, 10)) + ParseInt (Prand.Substring (10, Prand.Length))). toString ();
}
prand = (mult * prand + incher) % modul;
var Enc_chr = "";
var Enc_str = "";
für (var i = 0; i <str.length; i+= 2) {
ENC_CHR = ParseInt (ParseInt (Str.Substring (i, i+2), 16) ^ math.floor ((prand/modul) * 255));
Enc_str += string.fromCharCode (Enc_chr);
prand = (mult * prand + incher) % modul;
}
Rückgabe unemplary (Enc_str);
}
// Ende ->
</script>
Wenn Sie in Zukunft auf Verschlüsselungs- und Entschlüsselungsprobleme stoßen, können Sie den obigen Code direkt in eine JS -Datei schreiben und dann tun. Es ist einfach, Ärger zu sparen. . . .