Semasa saya menjalankan projek lama hari ini, saya menghadapi keperluan untuk menyulitkan dan menyahsulit parameter dalam URL dalam JavaScript, saya menemui kod berguna ini daripada Internet: Salin kod Kod adalah seperti berikut: <br> <!-- Mulakan <br /> fungsi Sulitkan(str, pwd) { <br /> if(str="")kembali ""; <br /> str = melarikan diri(str); <br /> if(!pwd || pwd==""){ var pwd="1234"; } <br /> pwd = melarikan diri(pwd); <br /> if(pwd == null || pwd.length <= 0) { <br /> alert("Sila masukkan kata laluan untuk menyulitkan mesej."); <br /> kembali null; <br /> } <br /> var prand = ""; <br /> for(var I=0; I<pwd.length; I ) { <br /> prand = pwd.charCodeAt(I).toString(); <br /> } <br /> var sPos = Math.floor(prand.length / 5); <br /> var mult = parseInt(prand.charAt(sPos) prand.charAt(sPos*2) prand.charAt(sPos*3) prand.charAt(sPos*4) prand.charAt(sPos*5)); <br /> var incr = Math.ceil(pwd.length / 2); <br /> var modu = Math.pow(2, 31) - 1; <br /> if(mult < 2) { <br /> alert("Algoritma tidak dapat mencari cincang yang sesuai. Sila pilih kata laluan yang berbeza. /nPertimbangan yang mungkin adalah untuk memilih kata laluan yang lebih kompleks atau lebih panjang."); <br /> kembali null; <br /> } <br /> var salt = Math.round(Math.random() * 1000000000) % 100000000; <br /> prand = garam; <br /> while(prand.length > 10) { <br> prand = (parseInt(prand.substring(0, 10)) parseInt(prand.substring(10, prand.length))).toString(); <br> } <br> prand = (mult * prand incr) % modu; <br> var enc_chr = ""; <br> var enc_str = ""; <br> for(var I=0; I<str.length; I ) { <br /> enc_chr = parseInt(str.charCodeAt(I) ^ Math.floor((prand / modu) * 255)); <br /> if(enc_chr < 16) { <br /> enc_str = "0" enc_chr.toString(16); <br /> }lain <br /> enc_str = enc_chr.toString(16); <br /> prand = (mult * prand incr) % modu; <br /> } <br /> garam = garam.toString(16); <br /> while(garam.panjang < 8)garam = "0" garam; <br /> enc_str = garam; <br /> kembali enc_str; <br /> } <br /> fungsi Nyahsulit(str, pwd) { <br /> if(str="")kembali ""; <br /> if(!pwd || pwd==""){ var pwd="1234"; } <br /> pwd = melarikan diri(pwd); <br /> if(str == null || str.length < 8) { <br /> alert("Nilai garam tidak dapat diekstrak daripada mesej yang disulitkan kerana panjangnya terlalu pendek. Mesej tidak boleh dinyahsulit."); <br /> kembali; <br /> } <br /> if(pwd == null || pwd.length <= 0) { <br /> alert("Sila masukkan kata laluan untuk menyahsulit mesej."); <br /> kembali; <br /> } <br /> var prand = ""; <br /> for(var I=0; I<pwd.length; I ) { <br /> prand = pwd.charCodeAt(I).toString(); <br /> } <br /> var sPos = Math.floor(prand.length / 5); <br /> var mult = parseInt(prand.charAt(sPos) prand.charAt(sPos*2) prand.charAt(sPos*3) prand.charAt(sPos*4) prand.charAt(sPos*5)); <br /> var incr = Math.round(pwd.length / 2); <br /> var modu = Math.pow(2, 31) - 1; <br /> var salt = parseInt(str.substring(str.length - 8, str.length), 16); <br /> str = str.substring(0, str.length - 8); <br /> prand = garam; <br /> while(prand.length > 10) { <br> prand = (parseInt(prand.substring(0, 10)) parseInt(prand.substring(10, prand.length))).toString(); <br> } <br> prand = (mult * prand incr) % modu; <br> var enc_chr = ""; <br> var enc_str = ""; <br> for(var I=0; I<str.length; I =2) { <br /> enc_chr = parseInt(parseInt(str.substring(I, I 2), 16) ^ Math.floor((prand / modu) * 255)); <br /> enc_str = String.fromCharCode(enc_chr); <br /> prand = (mult * prand incr) % modu; <br /> } <br /> kembalikan unescape(enc_str); <br /> } <br /> // Tamat --> <br> </skrip> <br> </div> <p>以后碰到加密解密问题,直接将上述代码写成一个js文件,就搞定。</p> <p></p>