回覆列表
  • 1 # 尋夢小老頭

    複製程式碼 程式碼如下:

    <!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>

    <SCRIPT LANGUAGE="JavaScript">

    function encrypt(str, pwd) {

    if(pwd == null || pwd.length <= 0) {

    alert("Please enter a password with which to encrypt the message.");

    return 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("Algorithm cannot find a suitable hash. Please choose a different password. \nPossible considerations are to choose a more complex or longer password.");

    return null;

    }

    var salt = Math.round(Math.random() * 1000000000) % 100000000;

    prand += salt;

    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;

    return enc_str;

    }

    function decrypt(str, pwd) {

    if(str == null || str.length < 8) {

    alert("A salt value could not be extracted from the encrypted message because it"s length is too short. The message cannot be decrypted.");

    return;

    }

    if(pwd == null || pwd.length <= 0) {

    alert("Please enter a password with which to decrypt the message.");

    return;

    }

    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 += salt;

    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;

    }

    return enc_str;

    }

    // End -->

    </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>Welcome to 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);" value="加密">

    </td><td align="center" valign="center">

    <input type="text" name="pwd" value="password">

    </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>

    程式碼copy之後直接開啟即可

  • 中秋節和大豐收的關聯?
  • 披薩餅底的配方?