学习如何使用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代码很好。
来源:莫然博客,欢迎分享本文!