在Java CLI应用程序中屏蔽密码

Mic*_*ael 3 java passwords command-line mask

我用Java(CLI)创建了这个小ATM应用程序,一开始我想要"Code:"然后用户应该输入它,在我的Java应用程序中它应该说像String(或int?)代码= 1234; 如果有效,那么继续,如果没有错,再试一次,如果有错3次,停止应用程序.

这样的样子怎么样?我已经在屏蔽密码后搜索了几个小时,并尝试了不同类型的代码而没有任何运气.我只想要一些简单的东西,将字符串转换为星号.

目前我的密码屏蔽看起来像这样:

java.io.Console cons;
char[] passwd;

if ((cons = System.console()) != null && (passwd = cons.readPassword("[%s]", "Code:")) != null)
Run Code Online (Sandbox Code Playgroud)

但是我无法(不知道)如何在代码中设置密码.

Jes*_*per 5

使用readPassword类的方法java.io.Console.

类的API文档Console有一个示例,说明如何从控制台窗口读取密码而不用明文回显密码.

编辑

迈克尔,这段代码是让用户在控制台窗口中输入关键字而不显示它.用户完成后,密码存储在变量中passwd.看起来你真正想要的是完全不同的东西:你有一些其他程序要求输入密码,你希望程序自动输入密码.

如果这确实是你想要做的,那么你不需要使用类Console.您可以尝试使用类java.awt.Robot在另一个应用程序中输入击键(但我不确定它是否适用于控制台窗口 - 尝试一下).