java与c# - 哪一个在安全性方面更安全?

时间:2010-12-23 23:57:24

标签: c# java security reverse-engineering

我和一些伙伴在这里有争论 -

通过编写一个无法入侵的代码,langauge是否更安全?

by hacked我的意思是在代码加密后,或者变成可执行代码后,可以将其反转为某种中间代码(如java字节代码),甚至是真正的高级程序代码本身。

这种鼓励一般都是因为我们中的一个人即将开始一个大型的软件项目,但他担心他的竞争对手会窃取他的一些非常有效的算法。

如果你们中的任何一个人能为每个语言提供一些利弊,那就太好了。

感谢。

3 个答案:

答案 0 :(得分:7)

我真的没有使用Java,所以我对C#更熟悉。 在C#(或其他.net语言)中,您可以使用像Reflector这样的简单免费工具来查看在可执行文件或dll中编写的所有代码。

你总是可以尝试使用最先进的工具来混淆代码,所以这不会轻易泄露,但我很确定如果代码对于某人进行黑客攻击/逆向工程是值得的,那么它将是,这只是一个时间问题,直到发生!

即使使用像C / C ++这样的低级语言,如果代码值得,感兴趣的人也会知道它是如何工作的。

底线:一切都是可持续的/反向工程的!

:)

答案 1 :(得分:1)

Java和C#都可以反编译为(大部分)原始源代码。在.Net中你有Reflector,在Java中你有DJ的Decompiler。它有两种方式。

最后,它并不重要。如果有人确定,他们总是可以解组您的代码并仍然获得“高效算法”。 CPU可读的任何代码都是人类可读的。

答案 2 :(得分:0)

由于“安全”,你似乎意味着防止逆向工程,你最好的选择可能是本地代码,如C / C ++ ...大多数解释语言 比本机代码更容易反编译,虽然你可以混淆它们使其变得更难。