Javascript加密和解密URL编码

今天,在一个老项目中,我们遇到了一个要求,在Javascript中对URL中的参数进行加密和解密,并从Internet中找到有用的代码。

复制代码代码如下所示:



<!——开始

加密函数(STR,PWD){

如果返回;

逃离(STR);

如果(pwd pwd = = | |!){ var pwd = } 1234 ;

密码=逃避(PWD);

如果(PWD = = null | | pwd.length <= 0){

警报()请输入一个加密消息的密码;

返回null;

}

无功性= ;

对于(var i = 0;i < pwd.length;i++){

性= pwd.charcodeat(我)(ToString);

}

var SPOS= math.floor(prand.length / 5);

无功多= parseInt(prand.charat(SPOS)+ prand.charat(SPOS×2)+ prand.charat(SPOS×3)+ prand.charat(SPOS×4)+定时性。);

var增加= math.ceil(pwd.length / 2);

VaR math.pow冒顿=(2, 31)- 1;

如果(多<2){

警报()算法找不到合适的散列。请选择一个不同的A

返回null;

}

VaR盐= math.round(Math.random()×1000000000)% 100000000;

盐性=;

而(prand.length > 10){

性=(parseInt(prand.substring(0, 10))+ parseInt(prand.substring(10,性。长ToString())));

}

性=(多*性+增加模块)%;

无功enc_chr = ;

无功enc_str = ;

对于(var i = 0;i < str.length;i++){

enc_chr = parseInt(str.charcodeat(我)^ math.floor((公关/模块)* 255)));

如果(enc_chr<16){

enc_str = 0 +(16)enc_chr.tostring;

}其他

enc_str = enc_chr.tostring(16);

性=(多*性+增加模块)%;

}

盐= salt.tostring(16);

而(salt.length<8)盐=0+盐;

enc_str =盐;

返回enc_str;

}

解密函数(STR,PWD){

如果返回;

如果(pwd pwd = = | |!){ var pwd = } 1234 ;

密码=逃避(PWD);

如果(str = = null | | { str.length<8)

警报(无法从加密消息中提取盐值);

返回;

}

如果(PWD = = null | | pwd.length <= 0){

警报()请输入一个用于解密消息的密码;

返回;

}

无功性= ;

对于(var i = 0;i < pwd.length;i++){

性= pwd.charcodeat(我)(ToString);

}

var SPOS= math.floor(prand.length / 5);

无功多= parseInt(prand.charat(SPOS)+ prand.charat(SPOS×2)+ prand.charat(SPOS×3)+ prand.charat(SPOS×4)+定时性。);

var增加= math.round(pwd.length / 2);

VaR math.pow冒顿=(2, 31)- 1;

VaR盐= parseInt(str.substring(str.length - 8,str.length),16);

STR = str.substring(0,str.length - 8);

盐性=;

而(prand.length > 10){

性=(parseInt(prand.substring(0, 10))+ parseInt(prand.substring(10,性。长ToString())));

}

性=(多*性+增加模块)%;

无功enc_chr = ;

无功enc_str = ;

对于(var i = 0;i < str.length;我+ = 2){

enc_chr = parseInt(parseInt(str.substring(I,I + 2),16)^ math.floor((公关/模块)* 255)));

enc_str = String.fromCharCode(enc_chr);

性=(多*性+增加模块)%;

}

返回unescape(enc_str);

}

/结束/





加密解密后,上面的代码直接写入js文件,这样就可以了。