【发布时间】:2013-05-26 11:19:39
【问题描述】:
我必须创建一个与数据库建立连接的 java 应用程序。
直到这一点,一切都很容易。但我需要包含一个配置选项,以允许最终用户输入他们自己的参数(服务器主机、用户、通行证、数据库、端口等)以连接到数据库。另一个简单的任务。现在每次用户启动应用程序时,我都需要阅读最终用户提供的这些预设,以其他方式记住用户的连接偏好。
我发现了一种使用 Java API 中的属性库的简单方法。但我有一个安全问题。用户的偏好暴露容易访问(主要是用户名和密码)。
有没有办法加密保存这个参数?
我需要一个好的和最简单的解决方案来解决这个安全问题。
【问题讨论】:
-
您可以考虑使用简单的 XOR 加密算法(但用户需要为您的应用程序提供额外的密码/密钥)。您将采用的解决方案很大程度上取决于您需要提供的安全级别。 PGP 加密是一个相当不错的选择。但是,请记住,在许多情况下,此类文件甚至是未加密的(例如 Maven 中的私有设置文件);但在这种情况下,用户必须将这些文件保密并受到保护。
-
我也考虑过密码/密钥选项,但给最终用户带来了复杂的任务。有人建议我尝试将用户的偏好写入 win reg,但我不知道如何执行此操作。
-
如果不可能或不容易加密我想要的数据,至少尽可能隐藏该数据