zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js加密解密字符串可自定义密码因子

JS密码密码加密解密 字符串 自定义 因子
2023-06-13 09:15:26 时间
复制代码代码如下:

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/>
<title>字符串加密</title>
</head>
<body>
<SCRIPTLANGUAGE="JavaScript">
<!--Begin
functionencrypt(str,pwd){
if(pwd==null||pwd.length<=0){
alert("Pleaseenterapasswordwithwhichtoencryptthemessage.");
returnnull;
}
varprand="";
for(vari=0;i<pwd.length;i++){
prand+=pwd.charCodeAt(i).toString();
}
varsPos=Math.floor(prand.length/5);
varmult=parseInt(prand.charAt(sPos)+prand.charAt(sPos*2)+prand.charAt(sPos*3)+prand.charAt(sPos*4)+prand.charAt(sPos*5));
varincr=Math.ceil(pwd.length/2);
varmodu=Math.pow(2,31)-1;
if(mult<2){
alert("Algorithmcannotfindasuitablehash.Pleasechooseadifferentpassword.\nPossibleconsiderationsaretochooseamorecomplexorlongerpassword.");
returnnull;
}
varsalt=Math.round(Math.random()*1000000000)%100000000;
prand+=salt;
while(prand.length>10){
prand=(parseInt(prand.substring(0,10))+parseInt(prand.substring(10,prand.length))).toString();
}
prand=(mult*prand+incr)%modu;
varenc_chr="";
varenc_str="";
for(vari=0;i<str.length;i++){
enc_chr=parseInt(str.charCodeAt(i)^Math.floor((prand/modu)*255));
if(enc_chr<16){
enc_str+="0"+enc_chr.toString(16);
}elseenc_str+=enc_chr.toString(16);
prand=(mult*prand+incr)%modu;
}
salt=salt.toString(16);
while(salt.length<8)salt="0"+salt;
enc_str+=salt;
returnenc_str;
}

functiondecrypt(str,pwd){
if(str==null||str.length<8){
alert("Asaltvaluecouldnotbeextractedfromtheencryptedmessagebecauseit"slengthistooshort.Themessagecannotbedecrypted.");
return;
}
if(pwd==null||pwd.length<=0){
alert("Pleaseenterapasswordwithwhichtodecryptthemessage.");
return;
}
varprand="";
for(vari=0;i<pwd.length;i++){
prand+=pwd.charCodeAt(i).toString();
}
varsPos=Math.floor(prand.length/5);
varmult=parseInt(prand.charAt(sPos)+prand.charAt(sPos*2)+prand.charAt(sPos*3)+prand.charAt(sPos*4)+prand.charAt(sPos*5));
varincr=Math.round(pwd.length/2);
varmodu=Math.pow(2,31)-1;
varsalt=parseInt(str.substring(str.length-8,str.length),16);
str=str.substring(0,str.length-8);
prand+=salt;
while(prand.length>10){
prand=(parseInt(prand.substring(0,10))+parseInt(prand.substring(10,prand.length))).toString();
}
prand=(mult*prand+incr)%modu;
varenc_chr="";
varenc_str="";
for(vari=0;i<str.length;i+=2){
enc_chr=parseInt(parseInt(str.substring(i,i+2),16)^Math.floor((prand/modu)*255));
enc_str+=String.fromCharCode(enc_chr);
prand=(mult*prand+incr)%modu;
}
returnenc_str;
}
//End-->
</script>
<formname="box"><center>
<tablecellpadding=0cellspacing=0border=0><tr><tdcolspan=3>
<textareacols=40rows=5wrap=virtualname=ipt>Welcometobaidu.com</textarea>
</td></tr>
<trheight=50><tdvalign="top">
<inputtype="button"onclick="document.box.opt.value=encrypt(document.box.ipt.value,document.box.pwd.value);"value="加密">
</td><tdalign="center"valign="center">
<inputtype="text"name="pwd"value="password">
</td><tdalign="right"valign="bottom">
<inputtype="button"onclick="document.box.ipt.value=decrypt(document.box.opt.value,document.box.pwd.value);"value="解密">
</td></tr>
<tr><tdcolspan=3>
<textareacols=40rows=5wrap=virtualname=opt></textarea>
</td></tr></table>
</center>
</form>
</body>

</html>

代码copy之后直接打开即可