我想屏蔽密码。我使用System.console()但它并不是更好,有时它返回null。有没有其他方法可以阻止回声并屏蔽密码?我是java的新手。所以任何人都可以解释如何做到这一点。
答案 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
才能正常工作的程序...)