无法在 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
如何在 Visual Studio 2019 中使用 git bash 终端配置文件?