如何在 Java 5 中屏蔽密码?

2022-01-22 00:00:00 passwords java masking

我正在尝试在 Java 中屏蔽密码.Sun java 提出了一种屏蔽密码的方法,如下所示.

I am trying to mask a password in Java. Sun java has suggested a way to mask a password as follows.

隐藏密码

它使用一种简单的方法来做到这一点.

It uses a simple way to do that.

public void run () {
  stop = true;
  while (stop) {
     System.out.print("10*");
 try {
    Thread.currentThread().sleep(1);
     } catch(InterruptedException ie) {
        ie.printStackTrace();
     }
  }
}

但是这种方法有几个缺点.

But this approach has several drawbacks.

  1. 如果用户使用箭头键 + 删除键,密码就会被泄露.

  1. If the user uses the arrow keys + delete keys the password gets revealed.

如果用户不小心同时按下了 2 个键(打字速度极快),某些字符不会被屏蔽.

If the user accidentally press 2 keys at the same time (Extremely high typing speed) some characters does not get masked.

你们有什么方法可以得到 100% 正确的遮罩吗?

Do you guys think of any way that can get a 100% correct masking?

推荐答案

使用Console.readPassword().

相关文章