<div class="codetitle"> <span><a style="CURSOR: pointer" data="79058" class="copybut" id="copybut79058" onclick="doCopy('code79058')"><u>复制代</u></a></span> 代码如下:</div> <div class="codebody" id="code79058"> <br><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <BR><html xmlns="http://www.w3.org/1999/xhtml"> <br> <br><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <br><title>字符串加密</title> <br></head> <br> <br><スクリプト言語="JavaScript"> <br><!-- Begin <BR>function encrypt(str, pwd) { <BR>if(pwd == null || pwd.length <= 0) { <BR>alert("パスワードを入力してくださいメッセージを暗号化するために使用します。"); <BR>null を返します。 <BR>} <BR>var prand = ""; <BR>for(var i=0; i<pwd.length; i ) { <BR>prand = pwd.charCodeAt(i).toString(); <BR>} <BR>var sPos = Math.floor(prand.length / 5); <BR>var mult = parseInt(prand.charAt(sPos) prand.charAt(sPos*2) prand.charAt(sPos*3) prand.charAt(sPos*4) prand.charAt(sPos*5)); <BR>var incr = Math.ceil(pwd.length / 2); <BR>var modu = Math.pow(2, 31) - 1; <BR>if(mult < 2) { <BR>alert("アルゴリズムは適切なハッシュを見つけることができません。別のパスワードを選択してください。n考えられる考慮事項は、より複雑または長いパスワードを選択することです。"); <BR>null を返します。 <BR>} <BR>var Salt = Math.round(Math.random() * 1000000000) % 100000000; <BR>プランド = 塩; <BR>while(prand.length > 10) { <BR>prand = (parseInt(prand.substring(0, 10)) parseInt(prand.substring(10, prand.length))).toString(); <BR>} <BR>prand = (mult * prand incr) % modu; <BR>var enc_chr = ""; <BR>var enc_str = ""; <BR>for(var i=0; i<str.length; i ) { <BR>enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255)); <BR>if(enc_chr < 16) { <BR>enc_str = "0" enc_chr.toString(16); <BR>} else enc_str = enc_chr.toString(16); <BR>prand = (mult * prand incr) % modu; <BR>} <BR>salt = Salt.toString(16); <BR>while(salt.length < 8)salt = "0" Salt; <BR>enc_str = ソルト; <BR>enc_str を返す; <BR>} <br><br>function decrypt(str, pwd) { <BR>if(str == null || str.length < 8) { <BR>alert("ソルト値を抽出できませんでした長さが短すぎるため、暗号化されたメッセージから削除されます。"); <BR>戻る; <BR>} <BR>if(pwd == null || pwd.length <= 0) { <BR>alert("メッセージを復号化するためのパスワードを入力してください。"); <BR>戻る; <BR>} <BR>var prand = ""; <BR>for(var i=0; i<pwd.length; i ) { <BR>prand = pwd.charCodeAt(i).toString(); <BR>} <BR>var sPos = Math.floor(prand.length / 5); <BR>var mult = parseInt(prand.charAt(sPos) prand.charAt(sPos*2) prand.charAt(sPos*3) prand.charAt(sPos*4) prand.charAt(sPos*5)); <BR>var incr = Math.round(pwd.length / 2); <BR>var modu = Math.pow(2, 31) - 1; <BR>var Salt = parseInt(str.substring(str.length - 8, str.length), 16); <BR>str = str.substring(0, str.length - 8); <BR>プランド = 塩; <BR>while(prand.length > 10) { <BR>prand = (parseInt(prand.substring(0, 10)) parseInt(prand.substring(10, prand.length))).toString(); <BR>} <BR>prand = (mult * prand incr) % modu; <BR>var enc_chr = ""; <BR>var enc_str = ""; <BR>for(var i=0; i<str.length; i =2) { <BR>enc_chr = parseInt(parseInt(str.substring(i, i 2), 16) ^ Math.floor((prand /モジュ) * 255)); <BR>enc_str = String.fromCharCode(enc_chr); <BR>prand = (mult * prand incr) % modu; <BR>} <BR>return enc_str; <BR>} <BR>// 終了 --> <br></script> <br><form name="box"><center> <br><table cellpadding=0 cellpacing=0 border=0><tr><tdcolspan=3> <br><textarea cols=40 rows=5 Wrap=virtual name=ipt>baidu.com へようこそ</textarea> <br></td></tr> <br><tr height=50><td valign="top"> <br><input type="button" onclick="document.box.opt.value= encrypt(document.box.ipt.value, document.box.pwd.value);" value="加密"> <br></td><td align="center" valign="center"> <br><input type="text" name="pwd" value="password"> <br></td><td align="right" valign="bottom"> <br><input type="button" onclick="document.box.ipt.value= decrypt(document.box.opt.value, document.box.pwd.value);" value="解密"> <br></td></tr> <br><tr><tdcolspan=3> <br><textareacols=40rows=5wrap=virtualname=opt></textarea> <br></td></tr></table> <br></center> <br></form> <br></body> <br><br></html> <br> </div> <br>代コードコピー後直接打って即可