[Java] 纯文本查看 复制代码 import java.io.*;
public class GetWiFiPassWord {
public static void main(String[] args) throws IOException {
testRunntime();
}
public static void testRunntime(){
try {
FileWriter fileWriter=new FileWriter("WIFI.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec("netsh wlan show profiles").getInputStream(),"GBK"));
String name;//储存WIFI名称的一行数据
//遍历WIFI
while ((name=br.readLine())!=null){
if (name.indexOf(" 所有用户配置文件 : ")>=0){
//打印wifi名称
System.out.println("WIFI名称:"+name.substring(15,name.length()));//提取WiFi名称的字符串然后输出
fileWriter.write("WIFI名称:"+name.substring(15,name.length())+"\n");
//如果不写GBK会出现乱码
BufferedReader br2 = new BufferedReader(new InputStreamReader(Runtime.getRuntime().exec("netsh wlan show profiles name=\""+name.substring(15,name.length())+"\" key=clear").getInputStream(),"GBK"));
String password;//储存WIFi密码的一行数据
//遍历字符串->"关键内容"
while ((password=br2.readLine())!=null){
if (password.indexOf("关键内容")>=0){
//打印WIFI密码
System.out.println("WIFI密码:"+password.substring(22,password.length()));//提取WIFI密码的字符串然后输出
fileWriter.write("WIFI密码:"+password.substring(22,password.length())+"\n"+"***************************"+"\n");
System.out.println("***************************");
break;
}
}
}
}
br.close();//关闭字符缓冲read流
fileWriter.close();//关闭文件write流
System.out.println("WIFI信息已经自动保存在WIFI.txt");
//用文本文档(notepad)打开WIFI.txt
Runtime.getRuntime().exec("cmd.exe /c notepad "+System.getProperty("user.dir")+"\\WIFI.txt");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
} 运行之后会自动在控制台打印出来,信息也在当前目录下生成一个WIFI.txt的文本中
建议打成jar包,建一个bat文件来启动
原理也是很简单,利用exec()方法执行cmd命令,然后通过字符流来读取信息,将wifi名称和密码提取出来
netsh wlan show profiles | 获取本机连接过的WIFI网络 | netsh wlan show profiles name=“wifi名称” key=clear | 查看某个WIFI网络的详细信息(包括WIFI密码) |
|