我正在处理一个必须要保护数据文件的项目(揭示代码不是主要问题)。我们使用Java + Netbeans. 有没有什么工具可以创建加密格式的jar包?我们还使用sqlite作为数据库 - 所以将文本文件放在加密格式中对我们来说也不是适当的选择。
我正在处理一个必须要保护数据文件的项目(揭示代码不是主要问题)。我们使用Java + Netbeans. 有没有什么工具可以创建加密格式的jar包?我们还使用sqlite作为数据库 - 所以将文本文件放在加密格式中对我们来说也不是适当的选择。
创建加密的 JAR 文件是不可能的,因为执行 JavaVM 必须能够读取要执行的数据。就像虚拟机一样,任何具备适当工具和技能的人都可以从 JAR 中提取所有数据。
如果可以加密 JAR 文件,您还必须向想要执行 JAR 的客户端提供某些解密密钥或功能,这会完全破坏加密的目的。
你能得到的最好的办法是混淆,但这对于有野心的攻击者来说并不是真正的安全障碍。
我赞同Kosi2801的观点。类文件加密只是模拟安全性(参见http://www.excelsior-usa.com/articles/java-obfuscators.html)。
使用自定义的ClassLoader可能会破坏应用程序,例如在应用服务器中。
有更好的方法:对类文件中的字符串常量进行加密。大多数商业混淆器都有此功能,例如Allatori、Stringer Java Obfuscation Toolkit、Zelix KlassMaster、Smokescreen、DashO(超级昂贵)。Stringer Java Obfuscator具有调用上下文检查和完整性控制功能,使保护难以被破解。
最安全的方式是将部分字节码存储并执行在外部设备上,例如JavaCard。
注:我是Licel LLC的CEO。Stringer Java Obfuscator的开发者。