ソフトウェアをインストールするユーザーにユーザー名/パスワードの入力を求めるカスタム画面がある install4j インストーラーがあります。インストーラーのテキストボックスは、resource.varfile に永続化される install4j 変数に値を格納することを知っています。パスワードを保存する最良の方法は何ですか?
IT 管理者がソフトウェアをインストールする状況がありますが、実際のユーザーはこのパスワードを表示できないはずです。
ありがとう
ソフトウェアをインストールするユーザーにユーザー名/パスワードの入力を求めるカスタム画面がある install4j インストーラーがあります。インストーラーのテキストボックスは、resource.varfile に永続化される install4j 変数に値を格納することを知っています。パスワードを保存する最良の方法は何ですか?
IT 管理者がソフトウェアをインストールする状況がありますが、実際のユーザーはこのパスワードを表示できないはずです。
ありがとう
エンコードされた値を 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 環境設定への保存に基づく別のアプローチが存在すると書かれていますが、パスワードを保存する安全な方法ではありません。パスワード フィールドの値を取得するためのベスト プラクティスは何ですか?
「パスワード」フォーム コンポーネントは、セキュリティ上の理由から、その値を応答ファイルに書き込みません。フォーム コンポーネントの [エンコードされた値を応答ファイルに書き込む] プロパティを選択すると、エンコードされた値が応答ファイルに書き込まれます。これはまったく安全ではありませんが、普通のユーザーが応答ファイル内のプレーンテキストのパスワードを見ることができなくなります。