2011-10-07 24 views
2

私はこのATMマシン用の単純なログインコードを作成しています。 ユーザー名とパスワードを入力してログインすると、うまく動作します。私はデータベースや外部テキストファイルに接続していないので、1人のユーザーしかいないので、Javaコードに明示的に書かれています。しかし、パスワード "p4ss"を入力するとマスクされるので、入力中に画面に表示するのではなく、 "* * * *"または空白だけを表示するべきです(Linux上でパスするときのように)。アスタリスクへの文字列、パスワードのマスキング

は現在、私のコードは次のようになります。

String user; 
    String pass;    
    System.out.print("User: "); 
    user = Keyboard.readString(); 
    System.out.print("Pass: "); 
    pass = Keyboard.readString(); 

    if ((user.equals("Admin")) && (pass.equals("p4ss")))    
    {  
     menu();  
    }  
    else 
    {  
     out.println("Wrong username or password."); 
    } 

は私が得ることができる任意のヘルプをお願い申し上げます。

+2

ここでは、キーボードクラスとは何ですか? ATM用のコードを書いているのなら、なぜSystem.outを使っているのですか? –

+1

Stackoverflowには、p4ssと入力するとセキュリティが組み込まれています。**** – JRL

+0

これは単なるログインページです。キーボードクラスでは、テキストを入力できるようになっています。システムが出力されているので、画面に出力が表示されます。 – Michael

答えて

0

特別な方法がありますConsole.readPassword()これを行うために、Java 6で導入されました。あなたは明らかに、このようなコードを実際のATMで実行することはできませんでした。 SwingにはJPasswordFieldがあり、GUIでこのようなマスキングを行うことができます。また、SwingベースのATMウィンドウを想像することもできます。

+0

最初の部分が間違っていますJava6以降のコンソールでパスワードをマスクすることができます。 – Dev

+0

それはとても涼しいです、私はそれに気づいていませんでした。編集されました。 –

1

私はこれがシミュレートされたATMであると仮定し...

のDevは、コンソール上のパスワードマスクを箱から出しをサポートされていることを指摘しているので、あなたはそれを使用することができます。あなたが使用するJavaSE 6以降をお持ちの場合は

+0

パスワードマスキングは、私の答えに示されているように、JavaSE 6以降のボックスでサポートされています。 – Dev

+0

@Dev:私はそれを知らなかった。それを指摘してくれてありがとう。 –

0

:しかしIOの最も些細なしかし、何のためにあなたは、Swingや「呪いのような」ライブラリを使用したほうが良いと思いますあなたは使用できますConsole.readPassword()