java类文件是否可以被反编译并且需要第三方软件以任何方式进行混淆会损害安全性吗?
答案 0 :(得分:12)
只有当你真的通过默默无闻地依赖安全时,无论语言或平台如何,这都是一个坏主意。
如果可以运行代码,则可以进行逆向工程。
答案 1 :(得分:6)
Java安全主要是为了保护您的计算机免受恶意代码的攻击。</ p>
不是保护代码免受逆向工程。
答案 2 :(得分:5)
“如果它运行,它可以被破解”(在游戏中反盗版措施的背景下)
答案 3 :(得分:4)
是和否......是的,如果您将任何类型的密码编译到您分发的Java程序中,那么是的,它将不安全,但是再次,这在任何编程中都是一件可怕的事情语言...例如,在C ++中,您可以使用strings实用程序恢复已编译到程序中的字符串。
如果您有任何超级秘密的事情,那么您通常不应该分发执行超级秘密事务的JAR(尽管“默默无闻的安全”通常不安全)。虽然你肯定需要了解一些关于安全性的基本知识,并且可以用Java来解决问题,但Java可以被反编译的事实并不是一个主要的安全劣势。我还应该注意到,一般来说,你不太可能遇到Java中的安全问题,因为Java可以保护你免受越界内存访问,缓冲区溢出,悬空指针和其他指针操作问题的困扰。
答案 4 :(得分:2)
我的简单观点是计算中没有任何东西是100%
因此,创造了一些东西,也可以打破某些东西。
答案 5 :(得分:2)
不,安全性很好。
你是对的,编译后的Java代码可以很容易地进行审计。但是,建立安全方案的前提是没有人会知道它是如何工作的(没有人会看到代码)是一种非常糟糕的做法。
答案 6 :(得分:1)
是的类文件可以在某种程度上反编译。但是在反编译后你不会得到确切的代码,因为这么多的常量,文字值等......将在编译的类中直接替换
答案 7 :(得分:1)
反编译基本上是一种基于代码重写代码的方法。它是一种安全威胁,因此最好避免Java类中的敏感信息。考虑到逻辑,给定时间可以猜测任何应用程序的逻辑而不实际反编译它。
反编译Java类很容易,因为java存储高级信息以保持可移植性。
答案 8 :(得分:0)
可以反映到类文件中并查看大量数据,而不是所有内容都可用或编译到类文件中,甚至更多只是编译器糖。