我发现了这个:click并且想到这种编码风格背后的原因是什么?
定义像_0x3384x4
这样的标识符,对于人类来说是不可读的......?!
或编写对象属性,如:
{
"\x63\x68\x61\x72\x73": ' \uD83D\uDE23 ',
"\x63\x6C\x61\x73\x73": '_1az _1a- _2gc',
"\x6E\x61\x6D\x65": 'Bi\u1EC3u t\u01B0\u1EE3ng vui 18'
}
这可以这样写,不是吗?
{ chars=" ", class="_1az _1a- _2gc", name="Biểu tượng vui 18"}
是不是因为有些旧电脑无法显示这些字符?它有点丑化,保护javascript代码吗?
它是什么类型的格式(0x7892x8
)十六进制,它代表什么? (eval("0x7892")
评估30866
,但0x7892x8
表示30866
的第8版...对我没有意义?!
答案 0 :(得分:0)
这不是编码风格。它是obfuscation
。
来自维基百科:
在软件开发中,混淆是故意创造的行为 混淆代码,即难以获得的源代码或机器代码 人类要明白。像自然语言中的混淆一样,它可能会使用 用不必要的迂回表达来撰写陈述。
程序员可能会故意混淆代码以隐藏其目的 (通过默默无闻的安全)或其逻辑,以防止 篡改,阻止逆向工程,或作为拼图或娱乐 有人阅读源代码的挑战。
称为混淆器的程序将可读代码转换为混淆代码 代码使用各种技术。
有许多工具,称为Obfuscator
,它们代表了代码。这是一个Javascript Obfuscator,例如:
正如你已经正确地猜测它是十六进制的。例如,x63
表示99 decimal
。
现在我们来看看代码表:
我们看到,99 decimal
代表c
字符。所以\x63
基本上是c
。