2011-08-20 40 views
0

我想屏蔽密碼。我使用System.console(),但它不是更好,有時它返回null。有沒有其他的方法來阻止回聲並且屏蔽密碼?我是新來的Java。所以請任何人都可以解釋如何做到這一點。如何在命令行中屏蔽密碼

+0

可能重複[如何掩蓋Java 5的密碼嗎? ](http://stackoverflow.com/questions/1108937/how-to-mask-a-password-in-java-5) – Snicolas

+1

我說不使用System.console()。readPassword() –

+0

沒有其他方法比使用System.console()。readPassword()除非你使用本地代碼。 – aalku

回答

0

最好的方法是使用Java 6的Console readPassword()方法。

本網站有一篇關於如何使用Java 5的好文章。http://www.devdaily.com/java/edu/pj/pj010005/。基本上他們用InputStreamReader包裝System.in並讀取一行。

如果您使用的是Unix系統,則可以在讀取程序之前運行系統程序stty並使用參數-echo,之後再讀取程序stty echo

ProcessBuilder pb = new ProcessBuilder("stty", "-echo"); 
pb.start().waitFor(); 
// Read the password here 
pb = new ProcessBuilder("stty", "echo"); 
pb.start().waitFor(); 

請注意,我沒有試過這個!有些stty計劃是滿意的,有些則不是(那些沒有需要他們標準輸入來自/dev/tty的工作權......)的

+0

是的,但它有時不工作。我正在使用Windows。 –

+0

@JKAUSHALYA,你的意思是它有時不工作。什麼不是?你首先期待什麼? –

+0

@vineet我不知道爲什麼,但有時它會返回null。我想在Windows命令行中屏蔽密碼。 –