Search Tools Data

Thứ Hai, 28 tháng 8, 2017

Mã hóa code - xem 03

<!--mã hóa code-->
<!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" xml:lang="en" lang="en">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>HTML Encryption Methods</title>
</head>

<body>

<script language="JavaScript" type="text/javascript">
<!--

function escapeAll(input) {
  var output = "";
  var escapeCode;

  for (i = 0; i < input.length; i++) {
    escapeCode = escape(input[i]);
    if (escapeCode.length == 1) {
      escapeCode = input.charCodeAt(i).toString(16).toUpperCase();
      if (escapeCode.length < 2) escapeCode = "0" + escapeCode;
      escapeCode = "%" + escapeCode;
    }
    output += escapeCode;
  }

  return output;
}

  function rot13(input) {
   return input.replace(/[a-zA-Z]/g,
      function(ch) {
        return String.fromCharCode((ch <= "Z" ? 90 : 122) >=
          (ch = ch.charCodeAt(0) + 13) ? ch : ch - 26);
      });
  }

  var base64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef" +
    "ghijklmnopqrstuvwxyz0123456789+/=";

  function encode64(input) {
    var output = "";
    var ch1, ch2, ch3, enc1, enc2, enc3, enc4;
    var i = 0;

    do {
      ch1 = input.charCodeAt(i++);
      ch2 = input.charCodeAt(i++);
      ch3 = input.charCodeAt(i++);

      enc1 = ch1 >> 2;
      enc2 = ((ch1 & 3) << 4) | (ch2 >> 4);
      enc3 = ((ch2 & 15) << 2) | (ch3 >> 6);
      enc4 = ch3 & 63;

      if (isNaN(ch2)) {
        enc3 = enc4 = 64;
      } else if (isNaN(ch3)) {
        enc4 = 64;
      }

      output = output + base64.charAt(enc1) +  base64.charAt(enc2) +
        base64.charAt(enc3) + base64.charAt(enc4);
      ch1 = ch2 = ch3 = "";
      enc1 = enc2 = enc3 = enc4 = "";
    } while (i < input.length);

    return output;
  }

  function decode64(input) {
    var output = "";
    var ch1, ch2, ch3, enc1, enc2, enc3, enc4;
    var i = 0;

    input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
    do {
      enc1 = base64.indexOf(input.charAt(i++));
      enc2 = base64.indexOf(input.charAt(i++));
      enc3 = base64.indexOf(input.charAt(i++));
      enc4 = base64.indexOf(input.charAt(i++));

      ch1 = (enc1 << 2) | (enc2 >> 4);
      ch2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      ch3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(ch1);

      if (enc3 != 64) output = output + String.fromCharCode(ch2);
      if (enc4 != 64) output = output + String.fromCharCode(ch3);

      ch1 = ch2 = ch3 = "";
      enc1 = enc2 = enc3 = enc4 = "";

    } while (i < input.length);

    return output;
  }

  function replaceSpecialChars(input)
  {
    var output = input;
    output = output.replace(/\\/g, "\\\\");
    output = output.replace(/\r/g, "\\r");
    output = output.replace(/\n/g, "\\n");
    output = output.replace(/\"/g, "\\\"");
    output = output.replace(/\t/g, "\\t");

    return output;
  }


  function generateCode()
  {
    var scriptBase = document.form.scriptbase.value;
    var inputCode = document.form.input.value;

    document.form.escape.value = scriptBase.replace("{0}",
      "document.write(unescape(\"" + escapeAll(inputCode) + "\"));");
    document.form.rot13.value =  scriptBase.replace("{0}",
      document.form.rot13decode.value + "document.write(rot13(\"" +
      replaceSpecialChars(rot13(inputCode)) + "\"));");
    document.form.base64.value =  scriptBase.replace("{0}",
      document.form.base64decode.value + "document.write(decode64(\"" +
      encode64(inputCode) + "\"));");

    document.form.escape.value = escapeTxt(inputCode);
  }

-->
</script>

<form name="form">
  <p>
    Please input your text/code below and press "Encode" to generate the JavaScript code:<br />
    <textarea id="input" cols="80" rows="8">Hello World!</textarea>
    <br />
    <input type="button" value="Encode" onclick="generateCode()" />
  </p>
  <p>
    Escape Encoding:<br />
    <textarea id="escape" cols="80" rows="8"></textarea>
  </p>
  <p>
    Rot13 Encoding:<br />
    <textarea id="rot13" cols="80" rows="8"></textarea>
  </p>
  <p>
    Base64 Encoding:<br />
    <textarea id="base64" cols="80" rows="8"></textarea>
  </p>

  <textarea id="scriptbase" style="display:none"><script language="JavaScript" type="text/javascript">{0}</script></textarea>
  <textarea id="rot13decode" style="display:none">function rot13(input){return input.replace(/[a-zA-Z]/g,function(ch){return String.fromCharCode((ch<="Z"?90:122)>=(ch=ch.charCodeAt(0)+13)?ch:ch-26)})}</textarea>
  <textarea id="base64decode" style="display:none">function decode64(input){var base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var ch1,ch2,ch3,enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=base64.indexOf(input.charAt(i++));enc2=base64.indexOf(input.charAt(i++));enc3=base64.indexOf(input.charAt(i++));enc4=base64.indexOf(input.charAt(i++));ch1=(enc1<<2)|(enc2>>4);ch2=((enc2&15)<<4)|(enc3>>2);ch3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(ch1);if(enc3!=64)output=output+String.fromCharCode(ch2);if(enc4!=64)output=output+String.fromCharCode(ch3);ch1=ch2=ch3="";enc1=enc2=enc3=enc4=""}while(i<input.length);return output}</textarea>
</form>

</body>

</html>

Phương Cần Thơ © 2016.