我有一个install4j安装程序,它有一个自定义屏幕,提示安装软件的用户提供用户名/密码。我知道安装程序文本框将值存储到持久化到resource.varfile的install4j变量中。存储密码的最好方法是什么?
我们有这样一种情况: IT管理员将安装软件,但实际用户应该无法查看此密码。
谢谢
发布于 2013-04-22 18:20:03
我打开了“write encoded value to response file”选项,将编码值写入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首选项的方法,但它不是存储密码的安全方法。检索密码字段值的最佳实践是什么?
发布于 2013-04-20 23:11:05
出于安全原因,"password“表单组件不会将其值写入响应文件。如果选择表单组件的"Write encoded value to response file“属性,则会将编码值写入响应文件。这根本不安全,但会阻止临时用户在响应文件中看到纯文本密码。
https://stackoverflow.com/questions/16120413
复制相似问题