复制代码代码如下:
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns = "http://www.w3.org/1999/xhtml">
<голова>
<meta http-equiv = "content-type" content = "text /html; charset = gb2312" />
<title> 字符串加密 </title>
</head>
<тело>
<Script language = "javascript">
<!- Начни
Функция Encrypt (str, pwd) {
if (pwd == null || pwd.length <= 0) {
Alert («Пожалуйста, введите пароль, чтобы зашифровать сообщение»);
вернуть ноль;
}
var prand = "";
for (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 ingr = math.ceil (pwd.length / 2);
var modu = math.pow (2, 31) - 1;
if (mult <2) {
ALERT («Алгоритм не может найти подходящий хэш. Пожалуйста, выберите другой пароль. /Непоссируемые соображения должны выбрать более сложный или более длинный пароль.»);
вернуть ноль;
}
var salt = math.round (math.random () * 1000000000) % 100000000;
Prand += соль;
while (prand.length> 10) {
prand = (parseint (prand.substring (0, 10)) + parseint (prand.substring (10, prand.length))). tostring ();
}
prand = (mult * prand + ingr) % modu;
var enc_chr = "";
var enc_str = "";
for (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 + ingr) % modu;
}
соль = соль.toString (16);
while (salt.length <8) salt = "0" + соль;
Enc_str += Salt;
вернуть Enc_str;
}
Функция расшифрована (str, pwd) {
if (str == null || str.length <8) {
оповещение («значение соли не может быть извлечено из зашифрованного сообщения, потому что длина его длина слишком короткая. Сообщение не может быть расшифровано.»);
возвращаться;
}
if (pwd == null || pwd.length <= 0) {
Alert («Пожалуйста, введите пароль, чтобы расшифровывать сообщение»);
возвращаться;
}
var prand = "";
for (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 ingr = math.round (pwd.length / 2);
var modu = math.pow (2, 31) - 1;
var salt = parseint (str.substring (str.length - 8, str.length), 16);
str = str.substring (0, str.length - 8);
Prand += соль;
while (prand.length> 10) {
prand = (parseint (prand.substring (0, 10)) + parseint (prand.substring (10, prand.length))). tostring ();
}
prand = (mult * prand + ingr) % modu;
var enc_chr = "";
var enc_str = "";
for (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 + ingr) % modu;
}
вернуть Enc_str;
}
// end ->
</script>
<form name = "box"> <Center>
<таблица CellPadding = 0 cell -spacing = 0 border = 0> <tr> <td colspan = 3>
<textarea cols = 40 Rows = 5 wrap = virtual name = ipt> добро пожаловать на baidu.com </textarea>
</td> </tr>
<tr Height = 50> <td valign = "top">
<input type = "button" onclick = "document.box.opt.value = incrypt (document.box.ipt.value, document.box.pwd.value);" value = "加密">
</td> <td align = "center" valign = "center">
<input type = "text" name = "pwd" value = "пароль">
</td> <td align = "right" valign = "bottom">
<input type = "button" onclick = "document.box.ipt.value = decrypt (document.box.opt.value, document.box.pwd.value);" value = "解密">
</td> </tr>
<tr> <td colspan = 3>
<textarea cols = 40 Rows = 5 wrap = virtual name = opt> </textarea>
</td> </tr> </table>
</center>
</form>
</body>
</html>
代码 Копия 之后直接打开即可