揭示隐藏密码的Java程序

时间:2014-12-16 12:09:27

标签: java jpasswordfield

我想创建一个简单的Java程序,它显示从浏览器复制的密码或以星号形式隐藏的其他应用程序。

我写了一些代码,但它不起作用!

例如,当我从Facebook密码字段复制密码时,将其粘贴到我程序的JPasswordField中。然后将它转换为普通文本,它向我显示错误的输出(实际上,它给了我的类名称,这很奇怪)

但是,当我复制任何普通文本并将其粘贴到JPasswordField然后获取文本时,它会返回正确的正常文本!

那么为什么它不起作用?如果我的问题看起来有点愚蠢,我很抱歉。我是编程新手,尤其是实用程序。 我怎样才能使它工作? :d

提前致谢, 这是代码:

class PasswordViewer extends JFrame {
    JPasswordField field = new JPasswordField(20);
    JButton btn = new JButton("OK");
    JPanel panel = new JPanel();
    char[] s;

    PasswordViewer() {
        setSize(300, 300);
        panel.add(field);
        panel.add(btn);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        add(panel);

        btn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                s = field.getPassword();
                findPass();
            }
        });
    }
    void findPass() {
        String str = "";
        for (int i = 0; i < s.length; i++) {
            str += s[i];
        }
        JOptionPane.showMessageDialog(null, str, "PasswordViewer",
            JOptionPane.INFORMATION_MESSAGE);
    }
    public static void main(String[] args) {
        PasswordViewer passview = new PasswordViewer();
        passview.setVisible(true);
    }
}

1 个答案:

答案 0 :(得分:0)

显然,你不能像@ ankitkatiyar91所指出的那样从浏览器的密码字段中复制。 我误解了。 在您找到从浏览器的密码字段中复制密码的方法之前,这个问题毫无意义。