我们希望制作一个桌面应用程序来搜索本地打包的文本数据库,该数据库大小为几 GB。我们正在考虑使用 lucene。
所以基本上用户会搜索几个词,本地 lucene 数据库就会返回一个结果。但是,我们希望防止用户获取 lucene 索引的全文转储,因为文本数据库是有价值的和专有的。Web 应用程序不是这里的解决方案,因为客户希望此桌面应用程序在互联网不可用的区域工作。
我们如何加密 lucene 的数据库,以便只有客户端应用程序可以访问 lucene 的索引,而窥探用户不能获取索引的全文转储?
我们认为,这样做的一种方法是 lucene 索引是否可以存储在文件内的加密文件系统中(类似于 truecrypt)。因此桌面应用程序将“挂载”包含 lucene 索引的文件。
这需要跨平台(Linux、Windows)......我们将使用 Qt 或 Java 来编写桌面应用程序。
有没有更简单/更好的方法来做到这一点?
[这是给客户的。是的,是的,从概念上讲这是一件坏事:-) 但这就是他们想要的。基本上关键是只有桌面应用程序应该能够访问 lucene 索引,而没有其他人。有人指出,这本质上是 DRM。是的,它类似于 DRM]