我有一个 Java 桌面应用程序(一个可运行的 jar),它通过 CD 提供给客户。然后“autorun.inf”自动启动 jar 并且应用程序从 CD 运行(因此在只读环境中运行)。
此应用程序需要访问一些已知数据并以某种方式使用它。由于该应用程序是独立的,因此该数据应以某种文件的形式与应用程序一起分发。
现在是具有挑战性的目标:
此数据只是数字列,类似于数据库表导出。访问它的最方便的方式就像它是一个数据库表,可以在其中对这些文件进行 SQL 查询。
此数据应对用户客户保密。尽管数据必须与应用程序一起分发,但用户无法辨认。因此,数据必须以某种方式加密或混淆。
所以我请求你的帮助,主要是给我一些想法,帮助我理解并与你讨论哪种是实现这些功能的最佳方式。
非常感谢您, 阿尔维斯
编辑#1: 使用嵌入式数据库引擎是一个好主意,可以同时解决这两个问题。但这对我提出了一些问题:
数据库引擎是否需要在某处写入文件?我用 HSQLDB 做了一些测试,我认为它确实如此。这将是一个问题,因为应用程序是从 CD 运行的。
如果它真的需要这样的文件,我是否可以将它们与应用程序一起发布,而不是即时创建?
只是确认一下,如果我使用加密的数据库,我必须在应用程序的某个地方放置让我解密它的 key ,对吗?
最佳答案
一种可能性是使用加密的 SQLite数据库。 SQLite 是一个关系数据库管理系统,其中数据库是文件。
有关 SQLite 中的加密,请查看此处:http://www.hwaci.com/sw/sqlite/see.html
关于java - 实现需要访问 secret 数据的 Java 桌面应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111414/