繁体   English   中英

Java 1.5命令行密码屏蔽

[英]Java 1.5 Command Line Password Masking

所有,

我们的服务器运行的是Java 1.5,我很难掩盖命令行中的用户输入。 我正在执行一个jar文件(java -jar my.jar),并通过printlns通过命令行提示符进行工作。 我无法使用Java控制台。

谢谢

最好的方法是使用Java 6的Console readPassword()方法。 由于您提到使用的是Java 5,因此这不是一种选择。 许多Java 6实用程序已被反向移植到Java5。尽管如此,我还没有找到为该类做过任何事情的人。

该站点上有一篇很好的文章,介绍了如何使用Java 5进行操作。http://www.devdaily.com/java/edu/pj/pj010005/ 基本上,它们使用InputStreamReader包装System.in并读取一行。

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

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

在Unix系统上? 您可以在读取程序之前尝试使用参数-echo运行系统程序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可以正常工作...)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM