学习若何使用Crafter CMS构建现代数字体验应用程序。现在电子书下载。与Crafter软件互助带来的。
在这篇文章中,我们将讨论更多的混淆,在那里使用它,以及它的优点。
疑心是什么?
混淆是有意制造混淆代码的行为,即让人难以明白的源代码或机械码。它类似于加密,但机械能够明白代码并能够执行:它。
我们将用来混淆JavaScript代码的url:
-
http://closure-compiler.appspot.com/home
-
http://www.danstools.com/javascript-obfuscate/
使用danstools疑心。
原始代码:
function hello(name) {
console.log('Hello, ' + name);
}
hello('New user');
混淆后(编者按:此代码块已被花样化为可读性。在这个代码块下面的屏幕截图中可以看到原始的混淆代码):
function(e) {
return d[e]
}
function(e) {
return d[e]
}(function(e) {
return d[e]
}) {
function(e) {
return d[e]
}.function(e) {
return d[e]
}('function (e){return d[e]}, ' + function(e) {
return d[e]
})
}
function(e) {
return d[e]
}('function (e){return d[e]} function (e){return d[e]}');
两个程序的输出将是相同的:
混淆可以用来隐藏来自外部天下的营业逻辑,它将大大削减文件的巨细,因此服务器和客户机之间的数据传输速率会很快。
缩小化也是一种混淆,在这里清空空空间,并重新命名变量。
例子:
-
缩小文件: https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.min.js
-
原始文件: https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js
为什么开源项目会被混淆?
-
代码巨细将会削减。
-
在JavaScript中,下载时间会削减
大多数开源JavaScript项目都是为了削减下载时间和代码巨细而缩小的。在缩小过程中,将天生一个缩小的文件和一个映射文件。使用映射文件,可以检索现实的代码。上面的角的映射文件文件将是:https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.5/angular.js.map
为什么疑心?
-
代码巨细将会削减。
-
将营业逻辑和代码隐藏起来。
-
逆向工程是异常难题的。
-
在JavaScript中,下载时间将会削减。
例子:
模糊= =加密?
不,疑心!=加密。
-
在JavaScript中,浏览器不能执行加密的代码,而浏览器会执行混淆代码。
-
加密的代码总是需要解密才气被执行。
-
混淆的代码不需要去混淆来执行。
总之,混淆JavaScript代码很好。
泉源:博客,迎接分享本文!