复制代码代码如下 :
<! 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>
<body>
<script language = "javaScript">
<!- 시작
함수 암호화 (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 exc = math.ceil (pwd.length / 2);
var modu = math.pow (2, 31) -1;
if (mult <2) {
ALERT ( "알고리즘은 적절한 해시를 찾을 수 없습니다. 다른 비밀번호를 선택하십시오. /npossible 고려 사항은 더 복잡하거나 더 긴 비밀번호를 선택하는 것입니다.");
널 리턴;
}
var salt = math.round (math.random () * 10000000000) % 1000000000;
프란드 += 소금;
while (prand.length> 10) {
prand = (parseint (prand.substring (0, 10)) + parseint (prand.substring (10, prand.length))). ToString ();
}
prand = (Mult * prand + exc) % 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 + exc) % modu;
}
salt = salt.tostring (16);
while (salt.length <8) salt = "0" + salt;
ENC_STR += 소금;
enc_str 리턴;
}
함수 해독 (str, pwd) {
if (str == null || str.length <8) {
경고 ( "길이가 너무 짧기 때문에 암호화 된 메시지에서 소금 값을 추출 할 수 없습니다. 메시지를 암호 해독 할 수 없습니다.");
반품;
}
if (pwd == null || pwd.length <= 0) {
경고 ( "메시지를 해독 할 암호를 입력하십시오.");
반품;
}
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 exc = 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);
프란드 += 소금;
while (prand.length> 10) {
prand = (parseint (prand.substring (0, 10)) + parseint (prand.substring (10, prand.length))). ToString ();
}
prand = (Mult * prand + exc) % 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 + exc) % modu;
}
enc_str 리턴;
}
// 종료 ->
</스크립트>
<양식 이름 = "box"> <center>
<TABLE CELLPADDING = 0 CellSpacing = 0 테두리 = 0> <tr> <TD ColSpan = 3>
<TextArea cols = 40 줄 = 5 랩 = 가상 이름 = ipt> baidu.com에 오신 것을 환영합니다 </textarea>
</td> </tr>
<tr height = 50> <td valign = "top">
<input type = "button"onclick = "document.box.opt.value = encrypt (document.box.ipt.value, document.box.pwd.value);" 값 = ">">
</td> <td align = "center"valign = "center">
<입력 유형 = "text"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);" 값 = ">">
</td> </tr>
<tr> <td colspan = 3>
<TextArea cols = 40 줄 = 5 랩 = 가상 이름 = opt> </textArea>
</td> </tr> </table>
</센터>
</form>
</body>
</html>
代码 복사 之后直接打开即可