Java实现本机WIFI密码查看
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密码)
可以不错,for /f "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles') do @echo %j | findstr -i -v echo | netsh wlan show profiles %j key=clear 这个就是读取系统保存的wifi,将WiFi名称和密码显示出来,exec执行的是cmd命令,将字符流输出保存到文件中,只适用于windows系统,linux和mac不能执行cmd命令。 mac不好使啊 值得学习,谢谢楼主 这个只能获取到已经连接的wifi密码吗? 谢谢提供思路! 学习一下 这个只能看自己电脑连接过的 不错,帮助很大