New*_*art 40 java passwords console console-application masking
如何从控制台输入掩码密码?我正在使用Java 6.
我尝试过使用console.readPassword(),但它不起作用.一个完整的例子可能对我有帮助.
这是我的代码:
import java.io.BufferedReader;
import java.io.Console;
import java.io.IOException;
import java.io.InputStreamReader;
public class Test
{
public static void main(String[] args)
{
Console console = System.console();
console.printf("Please enter your username: ");
String username = console.readLine();
console.printf(username + "\n");
console.printf("Please enter your password: ");
char[] passwordChars = console.readPassword();
String passwordString = new String(passwordChars);
console.printf(passwordString + "\n");
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个NullPointerException ...
bil*_*aha 60
一个完整的例子?运行此代码:(注意:此示例最好在控制台中运行,而不是在IDE中运行,因为在这种情况下System.console()方法可能会返回null.)
import java.io.Console;
public class Main {
public void passwordExample() {
Console console = System.console();
if (console == null) {
System.out.println("Couldn't get Console instance");
System.exit(0);
}
console.printf("Testing password%n");
char[] passwordArray = console.readPassword("Enter your secret password: ");
console.printf("Password entered was: %s%n", new String(passwordArray));
}
public static void main(String[] args) {
new Main().passwordExample();
}
}
Run Code Online (Sandbox Code Playgroud)
您将使用Console类
char[] password = console.readPassword("Enter password");
Arrays.fill(password, ' ');
Run Code Online (Sandbox Code Playgroud)
通过执行readPassword,可以禁用回显.验证密码后,最好覆盖数组中的任何值.
如果你从一个ide运行它会失败,请看这个解释得到一个彻底的答案:解释
| 归档时间: |
|
| 查看次数: |
96414 次 |
| 最近记录: |