0

ログイン情報を安全に保存する方法は何ですか? ユーザーがオンライン アカウントにログインする必要があるスイング アプリケーションがあり、現在はログインできますが、可能であればユーザーのログイン情報を自分のコンピューターに保存できるようにしたいと考えています。これを行うために私が考えたいくつかの方法があります:

  1. ログイン情報をファイルに保存する
  2. ログイン情報をデータベースに保存する

これを行う最善の方法は何ですか?Javaにはこれを行うための組み込み機能がありますか?

4

4 に答える 4

2

本当にログイン情報をユーザーのコンピューターに保存たい場合は、ダニエル・カプランが言及したこと以外に、昔ながらの方法は、それを Cookie に保存することです。

もう 1 つの方法はWeb SQLに格納することですが、その Javascript(HTML5) 中心であり、それに対するクライアント側のサポートはまだ不十分です。

編集 - そのswingアプリケーション以来

もう 1 つの安全な方法は、MD5 で暗号化されたパスワードを使用してSQLiteに保存することです。

セキュリティをあまり気にしない場合は、XML ファイルまたは構成ファイル、さらには CSV ファイルに保存してください。

于 2013-01-21T18:13:59.653 に答える
1

アプリケーションが順調に進んでいるため、ログイン情報をファイルに保存できますが、暗号化された形式で保存できます。アプリケーションがデプロイされる場所にデータベースをインストールしたくないため、データベースを使用しても意味がありません。

アプリが既にユーザーのマシン上のデータベースからデータにアクセスしている場合は、ユーザーの資格情報をファイルに保存するよりも、データベースに保存することをお勧めします。

于 2013-01-21T18:20:56.097 に答える
0

Preferences API を使用してデータを保存および取得することにしました
http://docs.oracle.com/javase/7/docs/api/java/util/prefs/Preferences.html

最終的なコードの大まかな例を次に示します。

public class Login extends javax.swing.JDialog{
    // Get saved info and set the textbox text
    public Login(){
        String userName = pref.get("user", "");
        if(!userName.equals("")){
            this.user.setText(userName);
        }
        String passName = pref.get("pass", "");
        if(!passName.equals("")){
            this.pass.setText(passName);
        }
    }

    // Run on login button click
    public void login(){
        String p = new String(pass.getPassword());
        DoLogin log = new DoLogin(user.getText(), p);
        log.execute();
    }

    // Process in background
    public class DoLogin extends SwingWorker{
        public void done(){
            // On successfull login save user data
            pref.put("user", this.strUser);
            pref.put("pass", this.strPass);
        }

        public String doInBackground(){
            // Process login
        }
    }
}
于 2013-01-24T15:56:49.700 に答える
0

ユーザー名情報を意味する場合は、データベースに保存しても問題ありません。

パスワードを意味する場合、通常よりもプレーンな形式でどこにも保存されません。

保存されるのは、何らかの (より良い - 古い実績のある) アルゴリズムによって生成されたハッシュ (パスワードに戻すことは不可能と見なされます) です。

誰かがログインしようとすると、システムは入力されたパスワードを取得し、(同じアルゴリズムを使用して) ハッシュに変換し、データベース (または他の場所) にあるものと比較します。

于 2013-01-21T18:19:50.623 に答える