0

我有一个使用 .properties 数据的应用程序,该数据包含来自 DB 的密码,我的客户将使用该应用程序,但我不想让他以任何方式访问此属性数据,即使我们查看 .jar . 我想使用 zip4j,但是有没有其他最好的解决方案,因为当我解压缩它时,.properties 将在某个地方解压缩,让客户端可以访问它不是吗?

4

1 回答 1

3

这是无法做到的。忘记这个想法并重新考虑您的系统。您不能提供读取访问权限而不同时提供读取访问权限。

这是媒体行业法律部门的梦想。他们投入大量资金来解决这个无法解决的 DRM 问题,这个问题永远不会奏效,但会让所有人烦恼。

您可以使用各种混淆技术使提取数据变得更烦人,但仅此而已。

其中一个想法是在 C++ 库中编码密码并通过 JNI 链接它。然后用户在不反汇编二进制文件的情况下无法提取它,但无论如何都可以在运行时进行内存转储。

您可以在运行时从中央服务器读取密码。您可以为此使用一次性密码。同样,如果用户具有适度的技术技能,这是徒劳的,因为您仍然可以使用 curl 或一些简单的脚本向服务器请求密码。

您可以使用允许连接到数据库(智能卡或其他东西)的硬件访问令牌。这是 90 年代非常流行的技术。

您所能做的就是增加一定程度的烦恼,这将阻止非技术人员。有了足够的钱,你就可以建立一些像样的 DRM,让精通技术的人暂时停止,但我严重怀疑它是否值得。

如果数据库访问非常宝贵,以至于您无法授予用户访问权限,但他需要它,那么您的设计就失败了。

于 2017-01-02T11:03:17.587 回答