Hari ini, ketika mengerjakan proyek lama, saya menemukan persyaratan. Saya mengenkripsi dan mendekripsi parameter dalam URL di JavaScript, dan menemukan kode yang berguna ini dari Internet:
Salinan kode adalah sebagai berikut:
<Bahasa skrip = "javascript">
<!- Mulailah
Function Encrypt (str, pwd) {
if (str == "") return "";
str = Escape (str);
if (! pwd || pwd == "") {var pwd = "1234"; }
PWD = Escape (PWD);
if (pwd == null || pwd.length <= 0) {
peringatan ("Harap masukkan kata sandi untuk mengenkripsi pesan.");
kembali nol;
}
var prand = "";
untuk (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) {
Peringatan ("Algoritma tidak dapat menemukan hash yang cocok. Silakan pilih kata sandi yang berbeda. /Pertimbangan NPossible adalah untuk memilih kata sandi yang lebih kompleks atau lebih lama.");
kembali nol;
}
Var Salt = Math.round (Math.Random () * 100000000) % 100000000;
Prand += garam;
while (prand.length> 10) {
prand = (parseInt (prand.substring (0, 10)) + parseInt (prand.substring (10, prand.length))). tostring ();
}
prand = (mult * prand + incr) % modul;
var enc_chr = "";
var enc_str = "";
untuk (var i = 0; i <str.length; i ++) {
enc_chr = parseInt (str.charcodeat (i) ^ math.floor ((prand/modul) * 255));
if (enc_chr <16) {
enc_str + = "0" + enc_chr.tostring (16);
}kalau tidak
enc_str += enc_chr.toString (16);
prand = (mult * prand + incr) % modul;
}
garam = garam. Tostring (16);
while (Salt.length <8) Salt = "0" + Salt;
enc_str += garam;
return enc_str;
}
Function Decrypt (str, pwd) {
if (str == "") return "";
if (! pwd || pwd == "") {var pwd = "1234"; }
PWD = Escape (PWD);
if (str == null || str.length <8) {
waspada ("Nilai garam tidak dapat diekstraksi dari pesan terenkripsi karena panjangnya terlalu pendek. Pesannya tidak dapat didekripsi.");
kembali;
}
if (pwd == null || pwd.length <= 0) {
peringatan ("Harap masukkan kata sandi untuk mendekripsi pesan.");
kembali;
}
var prand = "";
untuk (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 garam = parseInt (str.substring (str.length - 8, str.length), 16);
str = str.substring (0, str.length - 8);
Prand += garam;
while (prand.length> 10) {
prand = (parseInt (prand.substring (0, 10)) + parseInt (prand.substring (10, prand.length))). tostring ();
}
prand = (mult * prand + incr) % modul;
var enc_chr = "";
var enc_str = "";
untuk (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 + incr) % modul;
}
return unescape (enc_str);
}
// end ->
</script>
Di masa depan, jika Anda menghadapi masalah enkripsi dan dekripsi, Anda dapat menulis kode di atas langsung ke dalam file JS dan kemudian melakukannya. Sangat mudah untuk menyimpan masalah. . . .