How to mask a password in Java 5?

本小妞迷上赌 提交于 2019-12-01 16:53:39

You can now use System.console();

Console c = System.console();
if (c == null) {
    System.err.println("No console.");
    System.exit(1);
}


char [] password = c.readPassword("Enter your password: ");

Using certain syscalls (on windows and unix) you can disable echoing of characters to console. This is what System.console() does, but it works also in Java.

I'm using JNA to map certain syscall of unix and windows in a private branch of jline:

If you need code example leave a comment.

With the JDK 6.0, you have the java sources of the classes, including Console : I just verified and this class has only Java 5.0 dependencies.

So, in your project, you can create a copy of this Console class, and then use the readPassword method. I did not try but it should work.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!