2011-10-07 201 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 ...

開發指出,在控制檯密碼掩蔽支持開箱即用的,所以你可以使用它。但是任何東西,但最瑣碎的IO的你會更好使用Swing或一個「詛咒般的」庫:

+0

我的答案中指出,在JavaSE 6或更新版本中開箱即用地支持密碼屏蔽。 – Dev

+0

@Dev:我從來不知道。感謝您指出。 –