Java: 在dos窗口输入密码,不要把密码直接显示出来,原来可以这么简单
用下面的方法可以實(shí)現(xiàn)在控制臺(tái)上輸入密碼時(shí),密碼不顯示在控制臺(tái)上:Console cons=System.console();?
System.out.print("請(qǐng)輸入密碼:");?
char[] pwd=cons.readPassword();?
String password = new String(pwd);
System.out.println(password);根據(jù)jdk api 文檔上介紹:
安全注釋:?如果應(yīng)用程序需要讀取密碼或其他安全數(shù)據(jù),則它應(yīng)該使用 或 ,并在執(zhí)行后手工將返回的字符數(shù)組歸零,以最大限度地縮短內(nèi)存中敏感數(shù)據(jù)的生存期。
java.util.Arrays.fill(pwd, ' ');說明一下java.io.Console 這個(gè)類是 JDK 6 中新增的類庫,用于操作系統(tǒng)的控制臺(tái),系統(tǒng)的控制臺(tái)只能在操作系統(tǒng)原生的控制臺(tái)中使用,不能在 IDE 的控制臺(tái)中使用,因?yàn)?IDE 中的控制臺(tái)是經(jīng)過重定向的。經(jīng)過測試,如果在eclipse上使用這個(gè)readPassword();直接拋出NullPointerException
?
2011-12-27
?
名品推薦:斯慕琳?青婉田?仙詩
轉(zhuǎn)載于:https://www.cnblogs.com/personnel/p/4583141.html
總結(jié)
以上是生活随笔為你收集整理的Java: 在dos窗口输入密码,不要把密码直接显示出来,原来可以这么简单的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速解决 GRADLE 项目下载 gra
- 下一篇: 【Java】 大话数据结构(1) 线性