复制代码代码如下:
<! DocType html public "-// w3c // dtd xhtml 1.0 Transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transicional.dtd ">
<html xmlns = "http://www.w3.org/1999/xhtml">
<Evista>
<meta http-equiv = "content-type" content = "text /html; charset = gb2312" />
<title> 字符串加密 </title>
</ablo>
<Body>
<Script language = "javaScript">
<!- Comienza
función encrypt (str, pwd) {
if (pwd == null || pwd.length <= 0) {
alerta ("Ingrese una contraseña con la que encriptar el mensaje");
regresar nulo;
}
var prand = "";
para (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 modU = math.pow (2, 31) - 1;
if (mult <2) {
alerta ("El algoritmo no puede encontrar un hash adecuado. Elija una contraseña diferente. /Las consideraciones nposibles son elegir una contraseña más compleja o más larga");
regresar nulo;
}
var sal = math.round (math.random () * 1000000000) % 100000000;
prand += sal;
while (prand.length> 10) {
prand = (parseint (prand.substring (0, 10)) + parseint (prand.substring (10, prand.length))). toString ();
}
prand = (mult * prand + inc) % modu;
var enc_chr = "";
var enc_str = "";
para (var i = 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);
} else enc_str += enc_chr.ToString (16);
prand = (mult * prand + inc) % modu;
}
sal = sal.tostring (16);
while (sal.length <8) sal = "0" + sal;
enc_str += sal;
return enc_str;
}
función Decrypt (str, pwd) {
if (str == null || str.length <8) {
alerta ("No se pudo extraer un valor de sal del mensaje cifrado porque su longitud es demasiado corta. El mensaje no se puede descifrar");
devolver;
}
if (pwd == null || pwd.length <= 0) {
alerta ("Ingrese una contraseña para descifrar el mensaje");
devolver;
}
var prand = "";
para (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 modU = math.pow (2, 31) - 1;
var sal = parseint (str.substring (str.length - 8, str.length), 16);
str = str.substring (0, str.length - 8);
prand += sal;
while (prand.length> 10) {
prand = (parseint (prand.substring (0, 10)) + parseint (prand.substring (10, prand.length))). toString ();
}
prand = (mult * prand + inc) % modu;
var enc_chr = "";
var enc_str = "";
para (var i = 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 + inc) % modu;
}
return enc_str;
}
// fin ->
</script>
<Form name = "Box"> <Center>
<Tabla CellPadding = 0 CellSpacing = 0 border = 0> <tr> <td colspan = 3>
<Textarea cols = 40 filas = 5 wrap = virtual name = IPT> Bienvenido a baidu.com </extarea>
</td> </tr>
<tr altura = 50> <td valign = "top">
<input type = "Button" onClick = "document.box.opt.value = encrypt (document.box.ipt.value, document.box.pwd.value);" valor = "加密">
</td> <td align = "Center" valign = "Center">
<input type = "text" name = "pwd" valor = "contraseña">
</td> <td align = "right" valign = "Bottom">
<input type = "button" onClick = "document.box.ipt.value = Decrypt (document.box.opt.value, document.box.pwd.value);" valor = "解密">
</td> </tr>
<tr> <td colspan = 3>
<Textarea cols = 40 filas = 5 wrap = virtual name = opt> </textarea>
</td> </tr> </table>
</Center>
</form>
</body>
</html>
代码 Copia 之后直接打开即可