复制代码代码如下:
<!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">
<head>
<Meta http-equiv = "content-type" content = "text /html; charset = gb2312" />
<title>字符串加密</title>
</head>
<body>
<スクリプト言語= "javascript">
<! - begin
関数暗号化(str、pwd){
if(pwd == null || pwd.length <= 0){
Alert(「メッセージを暗号化するためのパスワードを入力してください。」);
nullを返します。
}
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 incr = math.ceil(pwd.length / 2);
var modu = math.pow(2、31)-1;
if(mult <2){
alert( "アルゴリズムは適切なハッシュを見つけることができません。別のパスワードを選択してください。
nullを返します。
}
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 + incr)%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 + incr)%modu;
}
SALT = SALT.TOSTRING(16);
while(salt.length <8)salt = "0" + salt;
ENC_STR += SALT;
enc_strを返します。
}
function decrypt(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 incr = 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 + incr)%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 + incr)%modu;
}
enc_strを返します。
}
//終了 - >
</script>
<form name = "box"> <center>
<Table CellPadding = 0 CellSpacing = 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">
<入力型= "button" onclick = "document.box.opt.value = encrypt(document.box.value、document.box.pwd.value);" value = "加密">
</td> <td align = "center" valign = "center">
<入力型= "テキスト" name = "pwd" value = "password">
</td> <td align = "right" valign = "bottom">
<入力型= "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>
代码コピー之后直接打开即可