|
1
3
这里的问题是,您试图同时向用户提供数据并拒绝来自em的数据。这基本上是另一个名称下的DRM问题—攻击者(用户)完全控制应用程序的环境(硬件和操作系统)。在这种情况下不可能有安全感,只有模糊和安全感的错觉。 当你能做到的时候 更努力 对于用户获取未加密的数据,您永远无法阻止它,因为这将意味着破坏您的应用程序。也许最贴切的办法是提供一个密封的硬件盒,但我不知道那会使它无法使用。 请注意,从法律角度(例如DMCA的反规避条款)来看,对安全性抱有半途而废的幻想可能就足够了,但这超出了SO的范围。 |
|
|
2
5
你没有。用户将拥有密钥和加密数据,因此他们可以访问所有内容。您可以将密钥埋藏在一个模糊的文件中,但这只会增加一点延迟。当然,它不会把窥探的用户拒之门外。你需要重新考虑。 |
|
|
3
2
从技术上讲,你无能为力。Lucene是用Java编写的,Java代码总是可以反编译或在调试器中运行,以获取需要存储在某处的密钥(可能是在卖给用户的许可证密钥中)。 你唯一的选择是法律(或与用户的合同)。文本数据受版权保护,因此如果用户以任何超出许可协议范围的方式使用它,您可以起诉用户。 也可以编写自己的文本索引系统。
|
|
|
4
1
为什么不建立一个索引,只包含用户可以访问的数据,并将该索引与桌面应用程序一起发布? |
|
|
5
1
|
|
|
6
1
单向散列函数 不是存储明文,而是存储哈希。当您想要搜索一个术语时,您可以将该术语推送到函数中,然后搜索散列。如果数据库中有匹配项,则返回竖起大拇指。 为了节省空间,你愿意接受误报吗?布卢姆过滤器。 |