如何加密我的程序源代码?

时间:2017-12-14 09:00:02

标签: java c# encryption

当我用来反编译程序(例如使用ILSpy for C#)时,我发现源代码的加密方式与源代码名称一样加密为 A.cs,AA。 cs,AB.cs 等...... 而且在它们内部,方法,变量,常量,甚至类也被加密为相同的 AA,ABC,IJ ..

我在Java和C#代码中看到了这一点。程序员是以这种加密方式编写还是稍后使用加密器?他们是如何做到的?

1 个答案:

答案 0 :(得分:2)

那不是加密。

编译代码时,将删除原始变量名称。它们对编译器不感兴趣,只有这些变量所在的内存位置。

因此,当您对其进行反编译时,原始变量名称将不再可用。反编译器给它一个人类可读的名字 - 通常是字母和数字的组合。

如果你想保护程序免受反编译,那么你可以使用混淆工具 - 正如@ Roman Puchkovskiy在comment中所建议的那样。我应该注意用户的警告,这些工具只提供对逆向工程的最小保护。如果最终用户可以访问可执行文件,他们就有机会对其进行逆向工程,只能让它变得更难 - 你永远无法让它变得不可能。