1

我有一个 install4j 安装程序,它有一个自定义屏幕,提示安装软件的用户提供用户名/密码。我知道安装程序文本框将值存储到 install4j 变量中,这些变量保存在 resource.varfile 中。存储密码的最佳方式是什么?

我们有一种情况,IT 管理员将安装软件,但实际用户应该无法查看此密码。

谢谢

4

2 回答 2

2

我打开了“将编码值写入响应文件”选项,将编码值写入 response.varfile。这种编码与Base64非常相似,但我花了一些时间尝试解码一个值并没有找到任何常见的做法,但想出了一些手动的工作顺序:

    String encoded = appProps.password;
   byte[] data = Base64.decode(encoded);
    for (int i = 0; i<data.length; i++) {
        data[i] = ((byte) (Math.abs(data[i])- 1)) ;
    }
    String decoded = new String(data);

它经过测试并且工作正常,但我无法解释它并保证它会在未来工作。页面页面说存在另一种基于保存到 java 首选项的方法,但它不是存储密码的安全方法。检索密码字段值的最佳做法是什么?

于 2013-04-22T10:20:03.053 回答
1

出于安全原因,“密码”表单组件不会将其值写入响应文件。如果您选择表单组件的“将编码值写入响应文件”属性,则会将编码值写入响应文件。这根本不安全,但会阻止临时用户在响应文件中看到纯文本密码。

于 2013-04-20T15:11:04.853 回答