嘿,欢送来到我的 JS 混同解密指南!明天咱们将参考驰名的《瑞克和莫蒂》来了解 JS 混同的真谛。
然而首先,咱们须要明确一下,为什么须要混同?答案很简略:出于平安的思考。如果代码被混同,攻击者将更难了解它的逻辑。那么混同是什么?混同是一种扭转代码构造和语法,使代码难以了解的操作。当初让咱们一起看看如何实现这一点。
首先,咱们须要理解 JS 混同的一些技术:变量名混同、代码折叠、字符串加密、代码压缩等等。这些技术能够联合应用,以发明更简单的混同成果。让咱们从最简略的开始:变量名混同。咱们将应用瑞克和莫蒂中的一个例子来阐明。
Copy code// 未混同的函数
function jerry(a, b) {return a * b;}
// 混同后的函数
function _0x5e05d5(a, b) {return a * b;}
这个例子中,咱们能够看到函数名从 “jerry” 变成了 “0x5e05d5″,这就是变量名混同的一个例子。因为 “0x5e05d5” 是一个十六进制数,而 “” 是非法的变量名字符,所以函数名变得更难以了解和记忆。
下一个例子须要你对《瑞克和莫蒂》更加相熟。在该节目中,瑞克总是折叠他的汽车轮子以便节俭空间。同样,咱们也能够将代码节点折叠到一行中来缩减代码的大小。这就叫做代码折叠。
Copy code// 未折叠的代码
var x = 1;
var y = 2;
var z = 3;
// 折叠后的代码
var x=1,y=2,z=3;
很简略,对吧?下一个例子是我最喜爱的:字符串加密。回顾一下瑞克和莫蒂的第一季,当瑞克变成航行的纸飞机时,他通知咱们:” 我曾经从事实层面渗透到了动画层面。” 咱们能够将这种思维利用于字符串加密中。
Copy code// 未加密的字符串
var password = "super_secret";
// 加密后的字符串
var password = "\x73\x75\x70\x65\x72\x5f\x73\x65\x63\x72\x65\x74";
这个例子中,咱们应用了十六进制转义字符来加密字符串。你能够将这个加密字符串嵌入到你的代码中,让攻击者更难破解明码。话说回来,如果你把明码藏在了代码中,那么这种加密办法还是很容易被破解的,因为攻击者一旦取得了代码,他们就能够剖析它。
最初一个例子须要你对瑞克和莫蒂的故事情节有所理解。在该剧中,瑞克总是喜爱压缩货色。咱们也能够应用 JS 压缩工具来压缩咱们的代码。
Copy code// 未压缩的代码
function add(a, b) {return a + b;}
// 压缩后的代码
function add(a,b){return a+b};
这通常应用工具来实现,但也能够手动实现。压缩能够革除代码中的空格、正文和换行符,从而放大代码的体积。
好了,当初你晓得了许多乏味的混同技巧。请记住,混同代码只是一种加强代码安全性的办法,但它并不能齐全爱护你的代码。最重要的爱护还是本人保存好代码,不要让他人获取它。