导航:首页 > 编程大全 > js打包混淆工具

js打包混淆工具

发布时间:2023-01-25 07:14:47

js 如何保护版权现有的混淆工具有2个问题1是加密了不能用了2是很好解密,有好的方法吗

没有。JS脚本是明码的。
把你的东西开源吧,如果你是个开发者,请支持开源事业,促使世界进步。
程序员不是这么干的,有种你别用开源软件。

❷ 如何用llvm-obfuscator混淆 js

LLVM是什么?
(1)LLVM是lowlevel virtual machine的简称,是一个编译器框架。苹果公司的Xcode 4.0之后用的都是LLVM编译器。
(2)LLVM 诞生于2003.10伊利诺伊大学香槟分校,创始人ChrisLattner,现任苹果公司『开发者工具』部门的主管。

二、 LLVM-Obfuscator 是什么?

(1)LLVM-Obfuscator 是瑞士西北应用科技大学安全实验室针对LLVM编译组件开发的代码混淆工具,该工具完全开源,目的是为了增加逆向工程的难度,保证代码的安全性。
(2)Obfuscator-llvm最新版本集成了LLVM-3.4编译器,并且兼容LLVM支持的所有语言(C,C++, Objective-C, Ada and Fortran)和平台(x86, x86-64, PowerPC, PowerPC-64,ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ,and XCore)。
纯手打,望采纳!

❸ 如何混淆(保护)javaScript

可以使用:
Google Closure编译器或其他第三方混淆工具
Google Closure编译器仍在使用,并且UglifyJS可以通过节点包管理器在本地运行:npm install -g uglify-js
私有字符串数据:
将字符串值设为私有是另一个问题,而混淆并不会带来太大好处。当然,通过将源打包成乱码,最小的混乱,可以通过 模糊* 性 获得轻便的安全性 。大多数情况下,查看源的是的用户,客户端上的字符串值是供他们使用的,因此通常不需要那种私有字符串值。

如果确实拥有一个不希望用户看到的价值,那么将有两个选择。首先,可以进行某种加密,该加密在页面加载时解密。那可能是最安全的选择之一,但也可能是很多不必要的工作。可能可以对一些字符串值进行base64编码,这会更容易,但是真正想要这些字符串值的人可以轻松地对其进行解码 。加密是真正阻止任何人访问的数据的唯一方法,大多数人发现加密比他们需要的安全性更高。

❹ js混淆加密工具好不好

js这种东西,加啥密,还是jq写的,混淆肯定容易混出问题。 你再怎么加浏览器都要解析出来能跑才行,浏览器能跑,就意味着很好解密。

❺ 除了autojs还有哪些软件可以打包js成apk

Fusion,Auto等。软件是一系列按照特定顺序组织的计算机数据和指令的集合。除了autojs还有Fusion,Auto等可以打包js成apk。apk是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。

❻ 怎么使用yuicompressor2.4.2.jar进行js,CSS进行代码混淆

目前开发Web应用Javascript发挥的作用越来越大,相关的Javascript框架也比较多。但是有一个问题,我们开发过程中,所有的JS代码都添加了注释,如使用JsDoc,代码的可读性比较强,同时这样的代码也便于调试。但是在产品环境中,我们希望这些JS代码是压缩和混淆过的,这主要是让 JS代码加载的更快,这也是Google AJAX Libraries API出现的原因。YUI Compressor 是一款由 Yahoo 公司开发的、功能非常强大的 JS、CSS 代码混淆和压缩工具,采用Java开发,目前很多Javascript Framework都使用YUI Compressor进行代码分发。

二、使用简介:

在命令行下执行 Java 程序,运行 yuicompressor jar 软件包,来完成任务:

//压缩JS
java -jar yuicompressor-2.4.2.jar --type js --charset utf-8 -v src.js > packed.js

//压缩CSS
java -jar yuicompressor-2.4.2.jar --type css --charset utf-8 -v src.css > packed.css

三、参考官方英文注释:

3.1 How does the YUI Compressor work?

The YUI Compressor is written in Java (requires Java >= 1.4) and relies on Rhino to tokenize the source JavaScript file. It starts by analyzing the source JavaScript file to understand how it is structured. It then prints out the token stream, omitting as many white space characters as possible, and replacing all local symbols by a 1 (or 2, or 3) letter symbol wherever such a substitution is appropriate (in the face of evil features such as eval or with, the YUI Compressor takes a defensive approach by not obfuscating any of the scopes containing the evil statement) The CSS compression algorithm uses a set of finely tuned regular expressions to compress the source CSS file. The YUI Compressor is open-source, so don't hesitate to look at the code to understand exactly how it works.

3.2 Using the YUI Compressor from the command line

java -jar yuicompressor-x.y.z.jar

Usage: java -jar yuicompressor-x.y.z.jar [options] [input file]

Global Options
-h, --help Displays this information
--type <js|css> Specifies the type of the input file
--charset <charset> Read the input file using <charset>
--line-break <column> Insert a line break after the specified column number
-v, --verbose Display informational messages and warnings
-o <file> Place the output into <file>. Defaults to stdout.

JavaScript Options
--nomunge Minify only, do not obfuscate
--preserve-semi Preserve all semicolons
--disable-optimizations Disable all micro optimizations

GLOBAL OPTIONS

-h, --help
Prints help on how to use the YUI Compressor

--line-break
Some source control tools don't like files containing lines longer than,
say 8000 characters. The linebreak option is used in that case to split
long lines after a specific column. It can also be used to make the code
more readable, easier to debug (especially with the MS Script Debugger)
Specify 0 to get a line break after each semi-colon in JavaScript, and
after each rule in CSS.

--type js|css
The type of compressor (JavaScript or CSS) is chosen based on the
extension of the input file name (.js or .css) This option is required
if no input file has been specified. Otherwise, this option is only
required if the input file extension is neither 'js' nor 'css'.

--charset character-set
If a supported character set is specified, the YUI Compressor will use it
to read the input file. Otherwise, it will assume that the platform's
default character set is being used. The output file is encoded using
the same character set. IMPORTANT: if you do not supply this argument
and the file encoding is not compatible with the system's default
encoding, the compressor will throw an error. In particular, if your
file is encoded in utf-8, you should include this parameter.

-o outfile
Place output in file outfile. If not specified, the YUI Compressor will
default to the standard output, which you can redirect to a file.

-v, --verbose
Display informational messages and warnings.

JAVASCRIPT ONLY OPTIONS

--nomunge
Minify only. Do not obfuscate local symbols.

--preserve-semi
Preserve unnecessary semicolons (such as right before a '}') This option
is useful when compressed code has to be run through JSLint (which is the
case of YUI for example)

--disable-optimizations
Disable all the built-in micro optimizations.Note: If no input file is specified, it defaults to stdin.

The following command line (x.y.z represents the version number):

java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.jswill minify the file myfile.js and output the file myfile-min.js. For more information on how to use the YUI Compressor, please refer to the documentation included in the archive.

The charset parameter isn't always required, but the compressor may throw an error if the file's encoding is incompatible with the system's default encoding. In particular, if your file is encoded in utf-8, you should supply the parameter.

java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js --charset utf-8

四、YUI Compressor 压缩 JavaScript 的原理

YUI Compressor 压缩 JavaScript 的内容包括:

1.移除注释
2.移除额外的空格
3.细微优化
4.标识符替换(Identifier Replacement)

YUI Compressor 包括哪些细微优化呢?

• object["property"],如果属性名是合法的 JavaScript 标识符(注:合法的 JavaScript 标识符——由一个字母开头,其后选择性地加上一个或者多个字母、数字或下划线)且不是保留字,将优化为: object.property
• {"property":123},如果属性名是合法的 JavaScript 标识符且不是保留字,将优化为 {property:123} (注:在对象字面量中,如果属性名是一个合法的 JavaScript 标识符且不是保留字,并不强制要求用引号引住属性名)。
• 'abcd/'efgh',将优化为 "abcd'efgh"。
• "abcd" + "efgh",如果是字符串相连接,将优化成 "abcdefgh"(注:所有在使用 YUI Compressor 的前提下,对于脚本中的字符串连接,使用连接符 “+” 的效率和可维护性最高)。
对于 JavaScript 最有效的压缩优化,当属标识符替换。

比如:

(function(){function add(num1, num2) {return num1 + num2;}})();

进行属标识符替换后:

(function(){function A(C, B) {return C+ B;}})();

再移除额外的空格,最终成了:

(function(){function A(C,B){return C+B;}})();

YUI Compressor 标识符替换仅替换函数名和变量名,那哪些不能被替代呢?

1.原始值:字符串、布尔值、数字、null 和 undefined。一般来说字符串占的空间最多,而非数字字面量其次(true、false,null,underfinded)。
2.全局变量:window、document、XMLHttpRequest等等。使用最多的就是 document、window。
3.属性名,比如:foo.bar。占据的空间仅次于字符串,”.” 操作符无法被代替,且 a.b.c 更加费空间。
4.关键字。经常被过度使用的关键字有:var、return。最好的优化方法:一个函数仅出现一次 var 和 return 关键字。
对于原始值、全局变量、属性名的优化处理方式大致相同:任何字面量值、全局变量或者属性名被使用超过 2 次(包括2次),都应该用局部变量存储代替。

但有部分情况下是禁止使用标识符替换的:

1.使用 eval() 函数。解决方法:不使用或者创建一个全局函数封装 eval()。
2.使用 with 语句。解决方法:方法同上。
3.JScript 的条件注释。唯一解决的方法:不使用。
由于 YUI Compressor 是建立在 rhino interpreter 基础上的,所以上述所有的优化都是安全的。

❼ 用uglifyjs压缩混淆JS

UglifyJs 是一个js 解释器、最小化器、压缩器、美化器工具集(parser, minifier, compressor or beautifier toolkit)

uglifyjs压缩有很多的参数,其中有一些可选参数,美化压缩,空格多长,变量名是否变成短名字等,具体说明: https://github.com/mishoo/UglifyJS2
名词翻译:

打开存放js文件的目录,按住shift键,鼠标右键,即可在此位置打开命令行

以下是可用的选项:

❽ 使用 webpack 打包 js

通过 命令行工具打包: webpack app.js bundle.js; 打包完成后会在同目录下生成bundle.js.

app.js: 入口文件;
bundle.js: 打包好的文件。

通过amd规范定义的, 打包后会生成一个bundle.js 和 一个 1.bundle.js, 两个bundle.js 文件

❾ 关于node.js 混淆,有没有办法

服务器端的也要混淆吗?我以前做前段的混淆都是用的一个java的jsa,感觉压缩率和混淆程度都不错,兼容性也好。但是这东西也有些问题,我自己下载到本地无法正常运行,只能用那个网页版本的一个一个手动的来混淆

1. uglifyjs混肴貌似只能针对局域成员,一旦跨引用就不能了。

2. 我还研究了node的vm模块,缺点是,沙盒配置很复杂,跨require引用时尤其

3. 还有类似eval的执行(也就是字符串注入执行),缺点是,一旦eval的加密后解密的明文,任何人可以console.log输出。

4. 一个台湾人写的叫做npk的模块,跨目录require时会有问题

❿ 如何混淆Js代码让别人无法(很难)还原

http://空格tool.空格lu/ 这个网址中(去掉"空格"两个字)有对应的代码工具,你可以用下试试

阅读全文

与js打包混淆工具相关的资料

热点内容
对商家怎么推广app 浏览:92
xplane10安卓破解 浏览:309
下载中国知网免费入口登入工具 浏览:959
台达编程软件如何下载安装 浏览:758
c程序设计试题汇编谭浩强pdf 浏览:28
任务栏出现的文件在哪里 浏览:119
房山网络大学如何报名 浏览:252
磊科无线路由器忘记用户名和密码 浏览:810
怎么快速建word文件夹 浏览:372
怎么把微信pdf文件发到qq邮箱 浏览:736
招标人在招标文件中公布的内容 浏览:793
数据库技术有哪些工程应用 浏览:471
如何将cad中的文字复制到word中 浏览:772
string转jsonjs 浏览:810
如何反制清洁网络计划 浏览:500
数据库数据库实例是什么意思 浏览:756
6splus南京东路苹果专卖店报价 浏览:688
vm获取配置文件中变量 浏览:639
三星note2哪个版本好 浏览:405
c程序求5 浏览:736

友情链接