上周写了一篇博客,《用 Python 脚本能获取 Wifi 密码么?能。》,大家反馈这仅仅是解决了本地电脑已链接 wifi 密码,那如果有人尝试暴力“破解” 我们的 WiFI 密码,有没有手段组织他们呢?
有啊,这不就来了么。
知己知彼,百战百胜,想要防止别人“盗取”你的 WIFI 密码,那首先要知道对方是如何暴力获取你的密码的。
初级选手一般用到 Python 的第三方库是 pywifi,手段被属于暴力破解范畴,技巧是弱密码+循环尝试,模块安装使用如下命令。
pip install pywifi
该库开源地址为:https://github.com/awkman/pywifi,可以随时关注其更新情况。
接下来先尝试一下最基础代码。
import pywifi # 模块导入
from pywifi import const # 常量导入
# 创建 wifi 对象
wifi = pywifi.PyWiFi()
# 获取第一个 wifi 网卡
ifaces = wifi.interfaces()[0] # 获取到第一个无线网卡
print(ifaces)
print('无线网卡名为:', ifaces.name())
# 连接到wifi 时状态码是4,未连接是0
print("状态码:", ifaces.status())
# 使用内置常量 const.IFACE_CONNECTED为4
if ifaces.status() == const.IFACE_CONNECTED:
print('已连接')
else:
print('未连接')
获取的是 WLAN 连接状态。

这个准备工作完成之后,他们就会使用密码本或者自定义关键词,尝试获取你的密码,具体实施步骤如下所示。
先调用内置方法,获取附近 WiFi,下述代码运行之前一定要增加停顿时间,否则会出现无法找到 WiFi 名称情况。
import pywifi # 模块导入
from pywifi import const # 常量导入
import time
# 创建 wifi 对象
wifi = pywifi.PyWiFi()
# 获取第一个 wifi 网卡
ifaces = wifi.interfaces()[0] # 获取到第一个无线网卡
# 执行扫描
ifaces.scan()
# 停顿一段时间,等待扫描结果
time.sleep(3)
wifi_list = ifaces.scan_results()
print(wifi_list)
for w in wifi_list:
print(w.ssid)
运行代码,输出如下结果。
360WiFi-Cxxxx
CMCC-6pqa
CMCC-CUfQ
@PHIxxxx_E5
yuelxxxxx_EXT2.4G
1303
360WiFi-C8xxxx-5G
有这些 WiFi 名称,下面就会对指定 WiFi 进行连接测试,下面的代码拿一个我们也按照这个步骤,拿一个已知道密码的 WiFi 热点进行测试。
import pywifi # 模块导入
from pywifi import const # 常量导入
import time
def connect_wifi():
wifi = pywifi.PyWiFi()
# 获取第一个无线网卡
ifaces = wifi.interfaces()[0]
print(ifaces)
# 如果连接 wifi 首先断开
ifaces.disconnect()
time.sleep(2)
wifi_status = ifaces.status()
# 未连接,调用如下代码
if wifi_status == const.IFACE_DISCONNECTED:
# 创建WiFi连接文件
profile = pywifi.Profile()
# 设置要连接WiFi的名称
profile.ssid = "我们自己的 Wifi "
# 检测网卡状态
profile.auth = const.AUTH_ALG_OPEN
# 设置 wifi 加密算法
profile.akm.append(const.AKM_TYPE_WPA2PSK)
# 设置加密单元
profile.cipher = const.CIPHER_TYPE_CCMP
# 调用密码
profile.key = '我自己的 Wifi 密码'
# 删除连接过的wifi文件
ifaces.remove_all_network_profiles()
# 设定新连接文件
new_profile = ifaces.add_network_profile(profile)
# 连接 wifi
ifaces.connect(new_profile)
# 等待wifi连接的时间,可长可短,具体自行设置
time.sleep(2)
if ifaces.status() == const.IFACE_CONNECTED:
print("连接成功")
else:
print("连接失败")
# 断开连接
ifaces.disconnect()
else:
pass
if __name__ == '__main__':
connect_wifi()
再总结一下核心逻辑,实现了 WiFi 列表获取之后,他们就会通过暴力循环来实现密码解析。
实战中也可能会用到 WIFI 密码本,不过一般不好用,好用的橡皮擦倒是有一份,在梳理一下对方逻辑,然后我们从中寻找避免被 “盗取” 密码的办法,“偷” 密码逻辑如下。
这种方式“获取” 密码速度怎么样?快么?
很慢,除非我们使用的是 12345678,11111111,66666666 这样简单的密码。
这代码到底有没有用?
对于获取 WIFI 密码来说,这代码没啥毛病,但是效率不高,实战中效果并不理想。
可以使用多线程破解吗
不可以,电脑网卡同时只能连接一个 WIFI ,无法使用多线程或者多进程操作。但如果对方在电脑上安装了多个网卡,那就另说了。
他们有没有好一些的 WIFI 破解思路呢?
有,但是学习成本会变高。
例如 单片机 WIFI 攻击。
也可以研究一下 Aircrack-ng ,也能获取到 wifi 密码。
密码本哪里有
一般 “盗窃者” 找不到好用的密码本,除非他们在 评论区留言邮箱或者 联系方式,或者点击下面卡片,找橡皮擦索取。
回到本文标题《如何防止别人“盗窃”你的 WiFI 密码》,到底有什么办法呢。
掌握这些配置方法之后,我想没有人能 蹭到你的 WiFI 了。
📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 768 篇原创博客
从订购之日起,案例 5 年内保证更新