无法在 git bash 终端中使用 char[] PASSWORD =cons.read Password 运行密码屏蔽

Posted

技术标签:

【中文标题】无法在 git bash 终端中使用 char[] PASSWORD =cons.read Password 运行密码屏蔽【英文标题】:Not able to run password masking using char[] PASSWORD =cons.readPassword in gitbash terminal 【发布时间】:2021-08-10 12:00:08 【问题描述】:

嗨,我正在尝试使用 char[] PASSWORD =cons.readPassword() 运行此程序以进行密码屏蔽 但它给了我

Exception in thread "main" java.lang.NullPointerException
    at automateCFOSetup.App.main(App.java:32)

当我在 git bash 终端 中运行程序时。但是当我在 Windows cmd 上运行它时,它运行良好......为什么会发生这种情况,因为我只知道在 IDE 中运行时获取此空指针的问题 这是我的代码 扫描仪扫描 = 新的扫描仪(System.in); 控制台 cons = System.console();

    log.info("ENTER YOUR ID :");
    String SOEID = scan.nextLine();
    
    char[] PASSWORD =cons.readPassword("ENTER YOUR PASSWORD :");
    scan.close();

有什么帮助吗?

【问题讨论】:

【参考方案1】:

不保证控制台支持此功能。鉴于您遇到异常,您在此处使用的特定控制台(您的 IDE,我并不感到惊讶 - 出于某种原因,那些“控制台”通常不支持此功能),不支持密码输入强>。

没有办法解决这个问题。但是有一些解决方法:

    您可以捕获异常并告诉用户:运气不好 - 没办法。 你可以抓住它,然后决定,嗯,无论如何,用通常的技巧询问 (scanner.nextLine())。也许警告用户他们的密码将被回显。当然,“在 IDE 中运行”并不是您打算部署您的软件的方式,所以这并不是一个安全问题(如果此应用程序用于私人开发人员的笔记本电脑,通常那些已经包含很多信息,例如代码本身、git 密钥等 - 如果该设备受到损害,您已经遇到了更大的问题。 根本不要在控制台上询问,而是使用 PKI 从其他地方(例如文件)获取密码。你知道,密码是如此 1990 年。

【讨论】:

以上是关于无法在 git bash 终端中使用 char[] PASSWORD =cons.read Password 运行密码屏蔽的主要内容,如果未能解决你的问题,请参考以下文章

来自 D 盘的 Visual Studio Code 中的 Git-Bash

vscode配置git bash

如何在 vscode 终端中使用 git bash 别名?

如何在 Visual Studio 2019 中使用 git bash 终端配置文件?

在 VS Code 中使用 Git Bash 终端 - 如何强制它在内部打开

Visual Studio Code:使用 Git Bash(Windows)