如何锁定已编译的Java类以防止反编译?
我知道这必须是互联网上讨论得很好的主题,但在提到之后我无法得出任何结论.
许多人确实建议使用混淆器,但他们只是使用难以记忆的字符序列重命名类,方法和字段,但是敏感的常量值呢?
例如,您已基于基于密码的加密技术开发了加密和解密组件.现在在这种情况下,任何普通的Java人都可以使用JAD来反编译类文件并轻松检索密码值(定义为常量)以及salt,从而可以通过编写小型独立程序来解密数据!
或者这些敏感组件是否应该使用本机代码(例如,VC++)构建并通过JNI调用它们?