运行条件: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 条回复
%%%%%%
%%%