如果应用程序需要读取密码或其他安全数据,则他应该使用Readpassword()或Readpassword(String,Object… ),并在执行后手工将返回的字符数组归零,以最大的限度缩短内存中敏感数据的生存期,如下程序:
public classTsetConsolePassword{
public static void main(String args[]){
while(true){
char password=System.console().readPassword();//取得密码
System.out.println(password); //输出字符串
}
}
}
运行该程序,在控制台输入字符串时将会是不显示的,这与Lunix控制命令窗口相似,目的是为了保证密码不被显示,防止泄露它直接监控键盘的输入,回车后即可获得密码字符串。还可以为readPassword()方法添加两个参数,用于作为读取密码时的提示信息,如下所示:
System.console().readPassword(“%s”,”请输入密码:”);
字符串“请输入密码”,将作为提示信息显示在控制台窗口中。