【赤石科技】WiFi 密码

2024-J-W010 2025-08-25 19:44:43

运行条件:Java JDK 21,且存放程序的文件名为 PasswordDecrypt.java

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class PasswordDecrypt {
    public static final String BOTTOM_TEXT = "正在扫描可用网络";

    private static int countDot(String str) {
        return (int) str.chars().filter(c -> c == '.').count();
    }

    private static String newDot(int count) {

        return ".".repeat(Math.max(0, count));
    }

    private static void showStartScreen() {
        JFrame frame = new JFrame("WiFi 密码破解器 v8.8.8");
        frame.setSize(800, 600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setResizable(false);
        frame.setLocationRelativeTo(null);
        frame.setLayout(new BorderLayout());

        JLabel title = new JLabel(BOTTOM_TEXT, JLabel.CENTER);
        Timer timer = new Timer(1000, e -> {
            int dot_count = countDot(title.getText());
            int new_dot_count = dot_count % 3 + 1;
            title.setText(BOTTOM_TEXT + newDot(new_dot_count));
        });

        timer.setRepeats(true);
        timer.start();
        title.setFont(new Font("宋体", Font.PLAIN, 17));
        frame.add(title, BorderLayout.SOUTH);

        JButton start = new JButton("已扫描到可用网络,点击破解");
        start.setFont(new Font("宋体", Font.BOLD, 20));

        start.addActionListener(e -> {
            start.setText("破解中...");
            start.setEnabled(false);

            JProgressBar progressBar = new JProgressBar(0, 100);
            progressBar.setStringPainted(true);
            progressBar.setFont(new Font("宋体", Font.PLAIN, 14));

            frame.remove(start);
            frame.add(progressBar, BorderLayout.CENTER);
            frame.revalidate();
            frame.repaint();

            Timer progressTimer = new Timer(50, new ActionListener() {
                int progress = 0;
                @Override
                public void actionPerformed(ActionEvent e) {
                    progress++;
                    progressBar.setValue(progress);

                    if (progress == 99) {
                        ((Timer)e.getSource()).stop();
                        Timer pauseTimer = new Timer(2000, e1 -> {
                            progressBar.setValue(100);
                            JOptionPane.showMessageDialog(frame,
                                "破解成功!\nWiFi密码是:你被骗了",
                                "结果",
                                JOptionPane.INFORMATION_MESSAGE);
                            System.exit(0);
                        });

                        pauseTimer.setRepeats(false);
                        pauseTimer.start();
                    }
                }
            });

            progressTimer.start();
        });

        frame.add(start, BorderLayout.CENTER);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(PasswordDecrypt::showStartScreen);
    }
}

共 2 条回复

SHY

%%%%%%

wangjunyi2013

%%%