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

java与c#-哪一个在安全性方面更安全?,c#,java,security,reverse-engineering,C#,Java,Security,Reverse Engineering,我和一些朋友在这里发生了争执- 在哪种语言中,编写一个不能被黑客攻击的代码更安全 我所说的hacked是指在代码被加密或转化为可执行文件后,它可以被反向工程转化为某种中间代码(比如java字节码),甚至是真正的高级程序代码本身 一般来说,这是因为我们中的一个人即将开始一个大型软件项目,但他担心他的竞争对手会窃取他的一些非常高效的算法 如果你们中的任何人都能为每一种语言提出一些正反两方面的观点,那就太好了 谢谢。我没有真正开始使用Java,所以我更熟悉C。 在C#(或其他.net语言)中,您可以使

我和一些朋友在这里发生了争执-

在哪种语言中,编写一个不能被黑客攻击的代码更安全

我所说的hacked是指在代码被加密或转化为可执行文件后,它可以被反向工程转化为某种中间代码(比如java字节码),甚至是真正的高级程序代码本身

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

如果你们中的任何人都能为每一种语言提出一些正反两方面的观点,那就太好了


谢谢。

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

你总是可以尝试用最先进的工具来混淆代码,所以这不会很容易被发现,但我很确定,如果代码足够值得一个人去破解/逆向工程,那么它将会是,而且这只是一个时间问题,直到它发生

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

一句话:一切都是可以破解/反向工程的


:)

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

你总是可以尝试用最先进的工具来混淆代码,所以这不会很容易被发现,但我很确定,如果代码足够值得一个人去破解/逆向工程,那么它将会是,而且这只是一个时间问题,直到它发生

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

一句话:一切都是可以破解/反向工程的

:)

因为“安全性”似乎是指防止逆向工程,所以最好的选择可能是像C/C++这样的本机代码。。。大多数解释语言比本机代码更易于反编译,尽管您可以混淆它们使其更难。

因为“安全性”似乎意味着防止逆向工程,您最好的选择可能是像C/C++这样的本机代码。。。大多数解释语言比本机代码更易于反编译,尽管您可以对它们进行模糊处理,使其更难反编译。

Java和C#都可以反编译到(大部分)原始源代码。Net中有反射器,Java中有DJ的反编译器。这是双向的

最后,这并不重要。如果有人下定决心,他们总是可以分解你的代码,仍然可以得到“有效的算法”。任何CPU可读的代码都是人可读的。

Java和C#都可以反编译为(大部分)原始源代码。Net中有反射器,Java中有DJ的反编译器。这是双向的



最后,这并不重要。如果有人下定决心,他们总是可以分解你的代码,仍然可以得到“有效的算法”。任何CPU可读的代码都是人类可读的。

我认为这个问题会带来很多争议,如果他有比任何众所周知的创新都高得多的创新,值得反向工程窃取,并且他将这些创新作为专有机密,而不是发表论文并将其贡献给适当的项目,显然,MSFT解决方案是适合他的平台。投票重新开放。我不同意。这个问题不是主观的或有争议的。它有一个非常清楚和简单的答案。也不没有代码是不安全的。将您的代码放在只有您自己控制的服务器上是最安全的。然后将你的高效算法作为某种服务提供。Arjan-这是一个很好的解决方案。让我明白,你说的是SaaS,对吗?(云计算)我认为这个问题会引起很多争论如果他有比任何广为人知的创新都要高得多的创新,值得逆向工程去窃取,并且他将这些创新作为专有机密,而不是发表论文并将其贡献给适当的项目,显然,MSFT解决方案是适合他的平台。投票重新开放。我不同意。这个问题不是主观的或有争议的。它有一个非常清楚和简单的答案。也不没有代码是不安全的。将您的代码放在只有您自己控制的服务器上是最安全的。然后将你的高效算法作为某种服务提供。Arjan-这是一个很好的解决方案。让我明白,你说的是SaaS,对吗?(云计算)只需对程序进行反向工程:),无需黑客攻击codecant我们只要让黑客进入无限循环,如果他试图攻击它?:PSo如果我们在这些语言中找不到救赎,也许我们应该尝试一些硬件设备?就像SIM卡这样的智能卡一样?(这实际上是可工程化的:/)。有没有办法把时间提高到足够高的程度,比如说一年或两年?@RanZilber-没有。坦率地说,你可能太看重你的源代码有多珍贵了。这不是火箭科学。@mystereman-首先我要感谢你们在这次讨论中给出的所有答案。是的,这不是火箭科学,我可能高估了我的代码。但是我还是不明白,为什么要花几个月的时间来对病毒类程序进行反向工程。只需对程序进行反向工程:),无需对编解码器进行黑客攻击。如果黑客试图对其进行黑客攻击,我们只需将其置于无限循环中即可:PSo如果我们在这些语言中找不到救赎,也许我们应该尝试一些硬件设备?就像SIM卡这样的智能卡一样?(这实际上是可工程化的