首页 > 编程语言 >JavaScript 压缩 加密 解密

JavaScript 压缩 加密 解密

时间:2023-03-27 18:34:11浏览次数:55  
标签:style code 加密 string quote JavaScript 解密 ENT var


 

代码:

 

<!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=UTF-8">
<link href="toolsite.css"  rel="stylesheet" type="text/css">
<title></title>
</head>
<body>
  <!--warp-->
  <div class="wrap">

  <!--main-->
  <div class="main">

<script src="base.js" type="text/javascript"></script>
<script type="text/javascript">
      function pack_js(base64) {
        var input = document.getElementById('content').value;
        var packer = new Packer;
        if (base64) {
          var output = packer.pack(input, 1, 0);
        } else {
          var output = packer.pack(input, 0, 0);
        }
        document.getElementById('content').value = output;
      }
</script>
<form name="aspnetForm" method="post" action="JsFormat.aspx" id="aspnetForm">
<div style="color: rgb(0, 106, 173); font-size: 16px; font-weight: bold;" align="center">JavaScript/HTML格式化</div>
<textarea id="content" name="content" style="width: 850px; border: 1px solid rgb(197, 226, 242); height: 300px; overflow: visible;" cols="20" rows="20">
            function htmlspecialchars(string, quote_style,
charset, double_encode) {
	// Convert special characters to HTML entities
	//
	// version: 1004.2314
	// discuss at: http://phpjs.org/functions/htmlspecialchars    // +
original by: Mirek Slugen
	// +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	// +   bugfixed by: Nathan
	// +   bugfixed by: Arno
	// +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
	// +      input by: Ratheous
	// +      input by: Mailfaker (http://www.weedem.fr/)
	// +      reimplemented by: Brett Zamir (http://brett-zamir.me)
	// +      input by: felix    // +    bugfixed by: Brett Zamir
(http://brett-zamir.me)
	// %        note 1: charset argument not supported
	// *     example 1: htmlspecialchars("<a
href='test'>Test</a>", 'ENT_QUOTES');
	// *     returns 1: '&lt;a
href=&#039;test&#039;&gt;Test&lt;/a&gt;'
	// *     example 2: htmlspecialchars("ab\"c'd", ['ENT_NOQUOTES',
'ENT_QUOTES']);    // *     returns 2: 'ab"c&#039;d'
	// *     example 3: htmlspecialchars("my "&entity;" is still here",
 null, null, false);
	// *     returns 3: 'my &quot;&entity;&quot; is still here'
	var optTemp = 0,
	i = 0,
	noquotes = false;
	if (typeof quote_style === 'undefined' || quote_style === null) {
		quote_style = 2;
	}
	string = string.toString();
	if (double_encode !== false) { // Put this first to avoid
double-encoding
		string = string.replace(/&/g, '&amp;');
	}
	string = string.replace(/</g, '&lt;').replace(/>/g,
'&gt;');

	var OPTS = {
		'ENT_NOQUOTES': 0,
		'ENT_HTML_QUOTE_SINGLE': 1,
		'ENT_HTML_QUOTE_DOUBLE': 2,
		'ENT_COMPAT': 2,
		'ENT_QUOTES': 3,
		'ENT_IGNORE': 4
	};
	if (quote_style === 0) {
		noquotes = true;
	}
	if (typeof quote_style !== 'number') { // Allow for a single string or
an array of string flags        quote_style = [].concat(quote_style);
		for (i = 0; i < quote_style.length; i++) {
			// Resolve string input to bitwise e.g. 'PATHINFO_EXTENSION' becomes 4
			if (OPTS[quote_style[i]] === 0) {
				noquotes = true;
			} else if (OPTS[quote_style[i]]) {
				optTemp = optTemp | OPTS[quote_style[i]];
			}
		}
		quote_style = optTemp;
	}
	if (quote_style & OPTS.ENT_HTML_QUOTE_SINGLE) {
		string = string.replace(/'/g, '&#039;');
	}
	if (!noquotes) {
		string = string.replace(/"/g, '&quot;');
	}

	return string;
}

</textarea>

<select name="tabsize" id="tabsize">
  <option selected="selected" value="1">
    制表符缩进
  </option>
  <option value="2">
    2个空格缩进
  </option>
  <option value="4">
    4个空格缩进
  </option>
  <option value="8">
    8个空格缩进
  </option>
</select>

<input class="but" value="格式化" οnclick="return do_js_beautify()" id="beautify" type="button">
<input class="but" value="普通压缩" οnclick="pack_js(0)" type="button">
<input class="but" value="加密压缩" οnclick="pack_js(1)" type="button">
</form>
  </div>
  </div>
</body>
</html>

 

 

另一种:

 

<script> 
a=62; 
function encode() { 
 var code = document.getElementById('code').value; 
 code = code.replace(/[\r\n]+/g, ''); 
 code = code.replace(/'/g, "\\'"); 
 var tmp = code.match(/\b(\w+)\b/g); 
 tmp.sort(); 
 var dict = []; 
 var i, t = ''; 
 for(var i=0; i<tmp.length; i++) { 
   if(tmp[i] != t) dict.push(t = tmp[i]); 
 } 
 var len = dict.length; 
 var ch; 
 for(i=0; i<len; i++) { 
   ch = num(i); 
   code = code.replace(new RegExp('\\b'+dict[i]+'\\b','g'), ch); 
   if(ch == dict[i]) dict[i] = ''; 
 } 
 document.getElementById('code').value = "eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\\\b'+e(c)+'\\\\b','g'),k[c]);return p}(" 
   + "'"+code+"',"+a+","+len+",'"+ dict.join('|')+"'.split('|'),0,{}))"; 
} 

function num(c) { 
 return(c<a?'':num(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36)); 
} 

function run() { 
 eval(document.getElementById('code').value); 
} 

function decode() { 
 var code = document.getElementById('code').value; 
 code = code.replace(/^eval/, ''); 
 document.getElementById('code').value = eval(code); 
} 
</script> 


<textarea id=code cols=80 rows=20> 

</textarea>
 
<input type=button οnclick=encode() value=编码> 
<input type=button οnclick=run() value=执行> 
<input type=button οnclick=decode() value=解码>

 

 

 

 

 

 

标签:style,code,加密,string,quote,JavaScript,解密,ENT,var
From: https://blog.51cto.com/u_8895844/6152844

相关文章

  • JavaScript 触发click事件 兼容FireFox,IE 和 Chrome
    解决了火狐下无法触发click事件的问题 <scriptlanguage="javascript"> functiontest2(name) { if(document.all) { document.getElementById(name).click(); ......
  • 系统化学习前端之JavaScript(BOM)
    前言DOM提供了JavaScript操作页面的API,BOM提供了JavaScript操作浏览器的API。BOMBOM浏览器对象模型,BOM的核心只有一个window对象。window对象在JavaScrip......
  • .Net 6.0中使用JWT加密
    准备工作:在步入正题之前我们首先要对JWT加密有个初步的概念和认识,并对其原理有一定的理解,这样才能使我们在.Net6.0中更快的上手JWT加密,下面是我整理JWT加密的一些资......
  • md5加密
    publicfinalstaticStringMD5(Strings){charhexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C&......
  • 【JavaScript快速排序算法】不同版本原理分析
    说明快速排序(QuickSort),又称分区交换排序(partition-exchangesort),简称快排。快排是一种通过基准划分区块,再不断交换左右项的排序方式,其采用了分治法,减少了交换的次数。它的......
  • 可搜索加密(Searchable Encryption)机制概述
    引言[1]:可搜索加密(searchableencryption,SE)是近年来发展的一种支持用户在密文上进行关键字查找的密码学原语,能够为用户节省大量的网络和计算开销,并充分利用云端服务......
  • Javascript之V8内存和垃圾回收讲解
    目录1Javascript内存1.1Javascript引擎1.2V8内存模型1.2.1栈1.2.2堆1.3内存生命周期1.3.1栈内对象生命周期1.3.2堆内对象生命周期2Javascript垃圾回收2.1引言2.2......
  • linux编译加密版sqlite
    加密版SQLite3MultipleCiphers下载网址:https://github.com/utelle/SQLite3MultipleCiphers/下载解压后,在终端执行以下2行命令就能生成libsqlite3.so,建议将libsqlite3.so......
  • 什么是 RUM JavaScript
    RUMJavaScript指的是一种用于网页性能监测的JavaScript代码,它能够在用户访问网站时记录用户的行为和页面性能数据,并将这些数据发送给RUM(RealUserMonitoring,实时用户......
  • JavaScript 函数 window.matchMedia 的用途
    以下是window.matchMedia()函数的基本语法:varmediaQueryList=window.matchMedia(mediaQueryString);其中,mediaQueryString是一个字符串,表示要检查的媒体查询条件。例......