2013-04-20 82 views
1

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

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

感谢

回答

1

“密码”表单组件不写它的价值,为安全起见响应文件。如果选择表单组件的“将编码值写入响应文件”属性,则编码值将写入响应文件。这完全不安全,但可防止临时用户在响应文件中看到纯文本密码。

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); 

它测试的工作,但我可以不要解释它,并保证它将在未来工作。 页面page表示存在另一种基于保存到java首选项的方法,但它不是存储密码的安全方式。检索密码字段值的最佳做法是什么?

相关问题