关键词:javascript 混淆 JsObfuscator Jsmin custom_rhino.jar

现在基于javascript的应用越来越复杂,为了提高代码的安全性和下载速度,需要对代码进行混淆和压缩。以前研究过几天js混淆,现在项目需要又拉出来溜溜,发现不少问题。简单讨论下三种我找到的混淆方法,以及改进。

一、JsObfuscator 是一个可执行的混淆压缩器,主要进行变量,函数名替换,去掉注释空行换行,压缩率比较好 。有两个地方让我觉得不爽,它每次只能压缩一人文件,它还会在每个函数结束后加个“;”,这应该不符合js的语法。当然牛人可以写个程序循环处理,但不知道能不能生成自己想要得目录,不利于发布代码。可配置性差。

二、第二个常用的是jsmin,他又c版本和php两个版本,都是源码。像我这样做web基本把c交给老师了,最简单也得找个turbo c,好像也有人用.net给它写了个界面,还得装.net环境,c版也被pass了。       了解php开发的可以用php版了,刚好前两天学了下php,就现学现卖吧。

2.把jsmin.php放在apache的htdocs目录下。

3.写个compress.php

require 'jsmin.php';

// Output a minified version of example.js.          echo JSMin::minify(file_get_contents('1039map.js'));

?>

他直接把代码输出到页面,这有个鸟用啊,不过有源码,可以改造它的先天不良基因。      我给它加了两个方法,一个建文件夹(存放压缩后的代码),一个新建压缩文件,并改造了minify()方法。

///创建文件夹

public function createdir($dir)     {

if(file_exists($dir) && is_dir($dir)){         }

else{          mkdir ($dir,0777);         }

}

///创建文件

function creat_file($PATH,$name)     {

$sFile = $name;       if (file_exists($PATH.$sFile)) {        creat_file();       }

else {        $fp= fopen($PATH.$sFile,"w");        fclose($fp);       }

return $sFile;

}

//$js:压缩文件名 ,$folder :存储路径,$fileName :压缩后的文件名

public static function minify($js,$folder,$fileName) {

$jsmin = new JSMin($js);

$file = $jsmin->creat_file($folder,$fileName);

$content = $jsmin->min();

$fp = fopen($folder.$fileName, 'w+');

fwrite($fp, $content);

fclose($fp);

return $jsmin->min();      }

调用页面代码compress.php:

echo JSMin::createdir("js_compress");

echo JSMin::minify(file_get_contents('index.js'),"js_compress/",'index.js');

?>

当然你可以compress.php执行多个压缩 。

未完待续。

php如何对js实现高度混淆,javascript 混淆相关推荐

  1. 第27讲:令人抓狂的 JavaScript 混淆技术

    我们在爬取网站的时候,经常会遇到各种各样类似加密的情形,比如: 某个网站的 URL 带有一些看不懂的长串加密参数,想要抓取就必须要懂得这些参数是怎么构造的,否则我们连完整的 URL 都构造不出来,更不 ...

  2. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战【转】

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  3. video.js视频高度自适应解决方法

    video.js视频高度自适应解决方法 1.引入两个外部文件,或者下载到本地 <link href="https://unpkg.com/video.js/dist/video-js. ...

  4. JavaScript混淆安全加固

    文章目录 前言 语法树AST混淆 变量名混淆 常量提取 常量混淆 运算混淆 语法丑化 动态执行 流程混淆 顺序扁平化 条件扁平化 不透明谓词 脚本加壳 反调试 定时执行 随机执行 内容监测 代码自检 ...

  5. Java 压缩/混淆 JavaScript 代码

    基本上都是自己写的工具构建前端工程,压缩/混淆 JavaScript 代码的工具必不可少.我们是 Java 平台的,就是说用 Java 去压缩 JS,这样比较方便.虽然咱们可以外部调用 node 等专 ...

  6. js混淆 反混淆 在线

    js反混淆地址:http://www.bm8.com.cn/jsConfusion/ 在线javascript 混淆http://www.moralsoft.com/jso-online/hdojso ...

  7. 技术分享:几种常见的JavaScript混淆和反混淆工具分析实战

    信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试者与黑客,善与恶,本文将聚焦这场永无止境决斗中的一个小点. HTML5 & JS 应用中充满着对输入进行验证/注入的问题,需要开发人员始终保 ...

  8. JavaScript 混淆和解密特性

    JavaScript 混淆和解密特性 变量重命名:混淆时会重命名变量,使用随机字符串或者字母表示,解密时需要将变量还原成原来的名称. 函数重命名:同样的,混淆时会重命名函数,使用随机字符串或者字母表示 ...

  9. JavaScript 混淆技术

    根据JShaman(JShaman是专业的JavaScript代码混淆加密网站)提供的消息,JavaScript混淆技术大体有以下几种: 变量混淆 将带有JS代码的变量名.方法名.常量名随机变为无意义 ...

最新文章

  1. Android数据存储方式
  2. 物联网智能硬件设备身份验证机制
  3. Python如何进行内存管理?
  4. Spring 依赖注入方式详解
  5. TensorFlow调试常见问题(pycharm)
  6. 在预览fastreport报表之前改变一些报表对象的属性
  7. ds证据理论python实现_ALI模型理论以及Python实现
  8. HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
  9. 【android开发】:android真机测试
  10. JavaScript的作用域(1)
  11. php_os用法,使用终端,如何让OS X使用MAMP版本的PHP
  12. java程序包condition不存在,Ant javac:包x不存在,但我将x.jar添加到java构...
  13. 24、求一个3×3的整型矩阵对角线元素之和
  14. iOS 应用内付费(IAP)开发步骤一:填写相关的税务,银行,联系人信息;
  15. 怎样用计算机粉碎文件夹,粉碎文件夹怎么操作 粉碎文件夹操作方法
  16. python中re.search()函数的用法
  17. 苹果手机在哪里清理内存_iphone苹果手机内存不足之清理大法
  18. 微信授权登陆【yixiyun】
  19. AHB to APB bridge
  20. 前端开发面试问题及答案

热门文章

  1. 马尔可夫网络和贝叶斯网络的一些总结
  2. 数字通信原理实验一:信号频谱分析实验
  3. J1939协议中CAN ID 与PGN互换--遇到了广播报文
  4. Beauty Box for Premiere Pro Mac(pr人像磨皮美容插件)
  5. PreScan快速入门到精通第四十二讲点云传感器
  6. Oracle不能用system用户 ORA-01017
  7. 参照企业微信审批业务,在Winform开发框架中工作流模块的实现业务审批
  8. Java数组02:数组的使用,多维数组,Arrays类,冒泡排序和稀疏数组
  9. 《Unix环境高级编程》---文件系统
  10. c语言中fcntl.h函数库,fcntl函数的使用详解