如何加密桌面java应用程序的配置文件

时间:2016-06-14 09:14:05

标签: java security encryption javafx

我正在开发桌面JavaFX应用程序,并计划将数据库和服务器连接详细信息放入Windows机器上隐藏文件夹中的配置文件中。

连接详细信息将包含密码。我知道这些不应该是纯文本,所以我应该如何加密它们以便只有应用程序可以读取它们?

我将尝试使用本机安装程序来保护源代码。 关于保护Java桌面应用程序的任何建议都会很棒,我真的不太了解安全性

2 个答案:

答案 0 :(得分:0)

安全加密的基础是一个秘密不会存储在磁盘上,而只能由用户知道。如果你不能使用它,你只能尝试模糊处理,这就是所有的信息,但更难阅读。

在这里,您可以使用应用程序已知的密码加密数据,将密码存储在不同的变量中,然后在运行时:

  • 汇编密码
  • 读取并解码配置
  • 如果可以进行最后一次操作,则删除包含密码的变量(使用普通Java不确定)

但是这不会保护准备好分析Java字节码的用户的数据,只需要非常繁重的工作 - 这就是为什么它不是安全性而只是为了模糊。

答案 1 :(得分:0)

正常加密需要某个​​地方的密钥(文件),这并不太难。

然而,如果你想完全动态地完成它,没有跟踪这样的jar(zip格式)里面有一些密钥文件。然后使用

Random random = new Random(42_424_242);

带有数字的Random构造函数选择一个固定的随机序列,因此现在你有一个数字序列来加密/解密一个字节序列,比如用户xor-ing,

bytes[i] = (byte) (bytes[i] ^ random.nextInt(256));

不是无与伦比的,但需要黑客攻击。