如何锁定编译后的Java类以防止反编译?

如何锁定编译后的Java类以防止反编译?

如何锁定已编译的Java类以防止反编译?

我知道这一定是互联网上讨论得很好的话题,但我在提到它们之后,却无法得出任何结论。

很多人确实建议混淆器,但是他们只是用难以记住的字符序列来重命名类、方法和字段,但是敏感的常量值呢?

例如,您已经基于密码的加密技术开发了加密和解密组件。在这种情况下,任何普通的Java人都可以使用贾德对类文件进行反编译,并轻松检索密码值(定义为常量)以及食盐然后,通过编写小的独立程序来解密数据!

或者应该在本机代码中构建这些敏感组件(例如,VC+)并通过JNI?


MM们
浏览 1054回答 3
3回答

繁华开满天机

只要他们能够访问加密的数据和解密数据的软件,基本上就没有办法使其完全安全。以前解决这一问题的方法是使用某种形式的外部黑匣子来处理加密/解密,如Dongles、远程身份验证服务器等。但即便如此,考虑到用户能够完全访问自己的系统,这只会使事情变得困难,而不是不可能-除非您可以将产品直接绑定到存储在“黑匣子”中的功能,比如在线游戏服务器。
打开App,查看更多内容
随时随地看视频慕课网APP