如何最大限度地利用黑客使javascript代码可读的时间

How to maximise the time, in which javascript code would be made readable by a hacker?

本文关键字:代码 javascript 时间 黑客 最大限度      更新时间:2023-09-26

我正在寻找创造性的方法来混淆我的JS代码,因此用户无法在不到1小时的时间内"美化"它。

具体来说,我有一个数组,我需要对理解 JS 的用户隐藏其值至少一个小时。例如,在这一点上,我将使用ascii代码和凯撒密码。任何更多创意将不胜感激。

您可以使用哈希算法,并且仅存储正确答案的哈希结果。要将输入的答案与正确答案进行比较,请对输入的答案进行哈希处理并比较哈希代码。虽然不是完全安全,但需要一些时间才能破解。

这当然需要有很多可能的答案。对于像"N.N.是哪一年出生的?"这样的问题,你可以轻松地在不到一秒钟的时间内强行破解每一个可能的答案。

您还可以添加数组内容中未使用的一系列噪声模式,并使用各种正则表达式消除它们。 但是你到底为什么要这样做呢? 请告诉我,这不适用于生产环境。 默默无闻不是安全。

我建议广泛使用逗号运算符,混淆短路、循环、前缀和后缀递增,这不符合它看起来应该做的样子,并真正利用从左到右计算赋值运算符的方式。例如:

j=(a=[],i=0);while(i-10)a[i++]=++j+i;

会给 2、4、6、8、10、12、14、16、18、20。它可能看起来并不那么令人困惑,但根据代码的大小,确实很棒。

我知道的最好的方法是在高级模式(不是简单模式)中使用闭包编译器。

闭包编译器在高级模式下处理的JavaScript程序几乎不可能进行逆向工程,即使在通过美化器之后也是如此。

缺点是使用高级模式时有很多限制。 对于那些可以使用它的人来说,这绝对是值得的。

我个人使用 Dojo 工具包,并在高级模式下通过闭包编译器优化我的移动程序。 由于死代码删除、内联、虚拟化、命名空间扁平化等,它使生成的文件比简单的缩小(可以被美化器击败)小约 25%。 由于有力的优化,性能也得到了增强。 我定期将生成的文件通过许多美化器,以确保它们不容易被逆向工程。