java - 屏蔽从控制台输入的密码:Java

标签 java console passwords 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");
    }
}


我收到NullPointerException ...

最佳答案

一个完整的例子?运行以下代码:(注意:此示例最好在控制台中运行,而不是从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();
    }
}

关于java - 屏蔽从控制台输入的密码:Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59052335/

相关文章:

Java : set a constant as a compilation argument

attributes - Unboundid LDAP 域属性

java - Bean 映射的 Hibernate 持久性问题(Dozer)

java - 在素数数组中查找特定数字

java - 连续检测对角线获胜 - tic-tac-toe, gomoku

java - CWWKF1219E : The IBM WebSphere Liberty Repository cannot be reached

c# - 如何打开进程并使整个类(class)都可以使用 Steam 读/写器

ruby-on-rails - 使用 Passenger 和 Rails 应用程序启动 nginx 时如何访问 Rails 应用程序的控制台(stdout)?

php - 一次性下载密码

php - 密码哈希应该以二进制还是十六进制数存储?