Java 1.5命令行密码屏蔽

时间:2010-03-07 22:33:34

标签: java command-line passwords

所有

我们的服务器正在运行Java 1.5,我很难尝试从命令行屏蔽用户输入。我正在执行一个jar文件(java -jar my.jar),并通过printlns处理命令行提示。我无法使用Java控制台。

由于

3 个答案:

答案 0 :(得分:2)

最好的方法是使用Java 6的Console readPassword()方法。既然您提到您使用的是Java 5,那么这不是一个选项。许多Java 6实用程序已经被移植到Java 5.虽然我没有找到任何为此类做过的人。

这个网站有一篇关于如何使用Java 5进行的很好的文章。http://www.devdaily.com/java/edu/pj/pj010005/。基本上,它们使用InputStreamReader包装System.in并读取一行。

答案 1 :(得分:1)

这是一篇有趣的文章:http://java.sun.com/developer/technicalArticles/Security/pwordmask/

编辑现在我重新阅读了,我认为他们的命令行“解决方案”真的很愚蠢。我们在应用程序中得到的是一个辅助程序,它可以理解如何根据操作系统(Linux,Windows,无论如何)屏蔽输入。 Java代码侦听套接字上的命令,前端密码阅读器获取密码和其他所需内容,然后将命令发送到Java代码。

答案 2 :(得分:1)

在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才能正常工作的程序...)