1

ソフトウェアをインストールするユーザーにユーザー名/パスワードの入力を求めるカスタム画面がある install4j インストーラーがあります。インストーラーのテキストボックスは、resource.varfile に永続化される install4j 変数に値を格納することを知っています。パスワードを保存する最良の方法は何ですか?

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 に答える