- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当输入类似密码时
yeast bulk seize is shows pain
每个人都可以听到敲击空格键的声音,因此在密码字段中显示空格似乎也是合乎逻辑的。所以我想要一些能够展示的东西
***** **** ***** ** ***** ****
而不是
******************************
这将使输入更容易,同时几乎不会降低安全性。
<小时/>更新 Riduidel 的评论之前请三思。当Bruce Schneier writes “是时候以明文形式显示大多数密码了”,那么显示一小部分密码也必须是正确的。特别是展示了只需聆听即可捕捉到的部分。
最佳答案
这是使用 setEchoChar()
的变体使密码在预定义的时间内可见:例如三秒。
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPasswordField;
import javax.swing.Timer;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
/** @see http://stackoverflow.com/questions/5339702 */
public class PasswordTest {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
private static void createAndShowGui() {
JFrame jf = new JFrame("Test Password");
JPasswordField jpwd = new JPasswordField();
TimedPasswordListener tpl = new TimedPasswordListener(jpwd);
jpwd.getDocument().addDocumentListener(tpl);
jf.add(jpwd);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jf.setLocationRelativeTo(null);
jf.pack();
jf.setVisible(true);
}
}
class TimedPasswordListener implements DocumentListener, ActionListener {
private Timer timer = new Timer(3000, this);
private char echoChar;
private JPasswordField pwf;
public TimedPasswordListener(JPasswordField jp) {
pwf = jp;
timer.setRepeats(false);
}
public void insertUpdate(DocumentEvent e) {
showText(e);
}
public void removeUpdate(DocumentEvent e) {
showText(e);
}
public void changedUpdate(DocumentEvent e) {}
public void showText(DocumentEvent e) {
if (0 != pwf.getEchoChar()) {
echoChar = pwf.getEchoChar();
}
pwf.setEchoChar((char) 0);
timer.restart();
}
public void actionPerformed(ActionEvent e) {
pwf.setEchoChar(echoChar);
}
}
关于java - 有 JPasswordField 的替代方案吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5339702/
所以我必须编写一个程序,提示用户输入密码,该密码必须满足三个要求:长度至少为 8 个字符,只能包含字母和数字,并且至少为两位数字。现在,我创建的用于检查这三个要求的方法我相信是合理的,但是我的程序还必
我的程序在初始化程序之前需要用户的用户名和密码验证,所以我创建了一个按钮登录,我将 ActionListener 关联到该按钮,如下所示 login.addActionListener(new
您好,我在这里尝试做的是接收用户输入的密码,然后将其与 if 语句中的正确密码进行比较。 public void actionPerformed(ActionEvent event) { St
我有创建一个 Jframe 的代码,我在其中添加了一个带有图片的 JLabel 和一个 JpasswordField。我希望 JpasswordField 位于图像之上,但仅取决于我在哪里执行 f.a
我关注了this Oracles tutorial关于 JPasswordField,我创建了一个简单的演示应用程序: import java.awt.event.ActionEvent; impor
Java 的 JPasswordField 正在对用户在密码字段中输入的输入进行编码,我不想要它。我正在根据纯数值的数据库值检查密码。 我正在输入密码的数值作为 12345 它返回 [C@1e9b48
我知道以前有人问过这个问题,但他们没有使用 .equals()。所以我要再问一次,为什么我有两个字符串,但是当我将它们与 .equals() 进行比较时,我得到了 false。这两个字符串是 1234
当输入类似密码时 yeast bulk seize is shows pain 每个人都可以听到敲击空格键的声音,因此在密码字段中显示空格似乎也是合乎逻辑的。所以我想要一些能够展示的东西 *****
抱歉再次提起这个话题,我已经仔细阅读了另一个类似的问题 Why does JPasswordField.getPassword() create a String with the password
--编辑-- 我有一个 JTextField,我希望每次有人更改(键入或删除)JTextField 中的字符时调用一个方法(现在只是打印语句)。其背后的目的是让该方法立即检查键入的内容是否满足某些条件
大家好,我需要一个密码,我想将其写入 JPasswordField(JPasswordFieldAnon) 并将提交操作附加到两个 JButton(AnonButton 和 AnonButton1)。
我是 JApplet 的新手。我不知道如何从方法 actionPerformed 内的内部类访问 JPasswordField 对象。我想将 PasswordField 添加到我的 JFrame Bi
我有一个代码,用于检查用户输入是否仅为字母数字,并根据标准检查输入的密码的强度。如果出现以下情况,则会出现带有注释的标签: -字段为空 -使用了无效字符 并且还会显示密码是否为弱、中、强和非常强 th
程序将初始化一个密码。然后,如果用户想要更改密码,他们将单击更改密码按钮。然后,程序将打开一个新窗口,用户必须输入当前密码、新密码和确认密码,然后如果您再次登录,密码将更改。我的程序的问题是它不更改其
我需要填充JPassword字段。但是看起来没有方法 setPassword (char []) 唯一的方法是 setText 。但是我需要提供一个 String 由于 getText 已被弃用,所以
我正在编写一个带有 JPasswordField 的小程序,我想知道是否可以保护我的 JPasswordField 的内容,以防用户的 PC 被键盘记录器入侵...... 我知道 Java 无法执行内
JPasswordField 的默认密码符号是一个点。 但这将被 Java Look and Feel 替换为星号。 有没有办法在加载外观后将此符号再次替换为点? 我已经知道在加载外观代码之前初始化或
任何人都可以帮助我编写这段代码,因为我是 Java 新手。我在网上找到了这段代码,我想了解它的作用? pass = new JPasswordField(10); pass.addKeyLis
在我的软件中,我提供了用于FTP登录的工具。我使用 JPasswordField 作为登录面板的密码部分。但是,建议将 JPasswordField 数组的每个字符设置为 0 以保证其安全。但我不确定
这个问题已经有答案了: Displaying the password in a JPasswordField rather than setting 0 as an echo char (5 个回答
我是一名优秀的程序员,十分优秀!