如何在命令行中屏蔽密码

时间:2011-08-20 15:25:18

标签: java

我想屏蔽密码。我使用System.console()但它并不是更好,有时它返回null。有没有其他方法可以阻止回声并屏蔽密码?我是java的新手。所以任何人都可以解释如何做到这一点。

1 个答案:

答案 0 :(得分: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程序对它感到满意,而有些则不是(那些不需要 stdin 来自/dev/tty才能正常工作的程序...)