mirror of
https://github.com/yawaflua/LogIn-App.git
synced 2025-12-10 04:09:30 +02:00
228 lines
8.8 KiB
Python
228 lines
8.8 KiB
Python
import os, smtplib
|
|
from random import randint
|
|
from tkinter import *
|
|
import tkinter as tk
|
|
from simplecrypt import encrypt, decrypt
|
|
from tkinter.messagebox import showerror, showinfo, askokcancel
|
|
from email.mime.multipart import MIMEMultipart
|
|
from email.mime.text import MIMEText
|
|
from __main__ import main
|
|
|
|
class path_take():
|
|
path = os.getcwd()
|
|
if not os.path.isdir(f'{path}/login_files'):
|
|
os.mkdir(f'{path}/login_files')
|
|
main_path = f'{path}/login_files'
|
|
os.popen(f'cd "{main_path}"')
|
|
with open(f'{main_path}/fromaddr.cfg', 'rb') as file:
|
|
crypted_data = file.read()
|
|
global fromaddr
|
|
fromaddr = decrypt('if_u_jailbreak_here_u_gay', crypted_data).decode('utf8')
|
|
file.close()
|
|
|
|
with open(f'{main_path}/mypass.cfg', 'rb') as file:
|
|
crypted_data = file.read()
|
|
global mypass
|
|
mypass = decrypt('if_u_jailbreak_here_u_gay', crypted_data).decode('utf8')
|
|
file.close()
|
|
# decrypting e-mail and password
|
|
class forgot_password():
|
|
def forgot():
|
|
login = windows.login_entry.get()
|
|
toaddr = windows.email_entry.get()
|
|
encrypt_code = windows.encrypting.get()
|
|
with open(f'{path_take.main_path}/{login}_email.cfg', 'rb+') as file:
|
|
email_decrypted = decrypt(encrypt_code, file.read()).decode('utf8')
|
|
if email_decrypted == toaddr:
|
|
forgot_password.email(toaddr=toaddr, login=login)
|
|
else: showerror(title='LogIn', message='E-mail don`t correct! Try again!')
|
|
# if u forgot password, u can delete account
|
|
def email(toaddr, login):
|
|
code = randint(10000, 99999)
|
|
msg = MIMEMultipart()
|
|
msg['From'] = fromaddr
|
|
msg['To'] = toaddr
|
|
msg['Subject'] = f"{code}. LogIn creating account"
|
|
body = f"{code}"
|
|
|
|
|
|
server = smtplib.SMTP('smtp.gmail.com', 587)
|
|
server.starttls()
|
|
server.login(fromaddr, mypass)
|
|
text = msg.as_string()
|
|
|
|
server.sendmail(fromaddr, toaddr, text)
|
|
|
|
def clickedd():
|
|
print(code2.get())
|
|
if code2.get() == body:
|
|
newWindow.destroy()
|
|
os.remove(f'{path_take.main_path}/{login}.cfg')
|
|
os.remove(f'{path_take.main_path}/{login}_email.cfg')
|
|
deleting_text.del_text(when='all')
|
|
else:
|
|
showerror(title='LogIn', message='code isnt correct')
|
|
newWindow = Toplevel(windows.window)
|
|
newWindow.title("LogIn code")
|
|
newWindow.geometry("200x200")
|
|
code2 = Entry(newWindow, width=10)
|
|
code2.grid(row=1)
|
|
button = Button(newWindow, text='Creating account', command=clickedd)
|
|
button.grid(row=2)
|
|
server.quit()
|
|
# send code for ur mail
|
|
class creating_account():
|
|
def email_creat(toaddr, login, password, encrypt_code):
|
|
code = randint(10000, 99999)
|
|
|
|
msg2 = MIMEMultipart()
|
|
msg2['From'] = fromaddr
|
|
msg2['To'] = toaddr
|
|
msg2['Subject'] = f"LogIn creating account"
|
|
|
|
|
|
body2 = f'''Your LogIn: {login}
|
|
Your password: {password}
|
|
Your decrypt phrase: {encrypt_code}
|
|
Thanks for using my app!
|
|
Made in Russia with love!'''
|
|
msg2.attach(MIMEText(body2, 'plain'))
|
|
text2 = msg2.as_string()
|
|
|
|
|
|
msg = MIMEMultipart()
|
|
msg['From'] = fromaddr
|
|
msg['To'] = toaddr
|
|
msg['Subject'] = f"{code}. LogIn creating account"
|
|
|
|
body = f"{code}"
|
|
msg.attach(MIMEText(body, 'plain'))
|
|
server = smtplib.SMTP('smtp.gmail.com', 587)
|
|
server.starttls()
|
|
server.login(fromaddr, mypass)
|
|
text = msg.as_string()
|
|
server.sendmail(fromaddr, toaddr, text)
|
|
|
|
def clickedd():
|
|
print(code2.get())
|
|
if code2.get() == body:
|
|
newWindow.destroy()
|
|
server.sendmail(fromaddr, toaddr, text2)
|
|
server.quit()
|
|
creating_account.creating_account(login=login, password=password, encrypt_code=encrypt_code, toaddr=toaddr)
|
|
else:
|
|
showerror(title='LogIn', message='code isnt correct')
|
|
server.quit()
|
|
newWindow = Toplevel(windows.window)
|
|
newWindow.title("New window")
|
|
newWindow.geometry("200x200")
|
|
code2 = Entry(newWindow, width=10)
|
|
code2.grid(row=1)
|
|
button = Button(newWindow, text='Creating account', command=clickedd)
|
|
button.grid(row=2)
|
|
# creating account code for ur e-mail
|
|
def creating_account(login, password, encrypt_code, toaddr):
|
|
password2 = encrypt(encrypt_code, password)
|
|
if not os.path.isfile(f'{path_take.main_path}/{login}.cfg'):
|
|
with open(f'{path_take.main_path}/{login}.cfg', 'wb+') as file:
|
|
file.write(password2)
|
|
file.close()
|
|
showinfo(title='LogIn', message='Account created!')
|
|
else:
|
|
showerror(title='LogIn', message='Account already created!')
|
|
with open(f'{path_take.main_path}/{login}_email.cfg', 'wb+') as file:
|
|
toaddr2 = encrypt(encrypt_code, toaddr)
|
|
file.write(toaddr2)
|
|
file.close()
|
|
deleting_text.del_text(when='all')
|
|
# creating files with ur e-mail and password. All encrypted
|
|
class logging_account():
|
|
def email_log(toaddr, login, password, encrypt_code):
|
|
code = randint(10000, 99999)
|
|
|
|
msg = MIMEMultipart()
|
|
msg['From'] = fromaddr
|
|
msg['To'] = toaddr
|
|
msg['Subject'] = f"{code}. LogIn creating account"
|
|
|
|
body = f"{code}"
|
|
msg.attach(MIMEText(body, 'plain'))
|
|
server = smtplib.SMTP('smtp.gmail.com', 587)
|
|
server.starttls()
|
|
server.login(fromaddr, mypass)
|
|
text = msg.as_string()
|
|
server.sendmail(fromaddr, toaddr, text)
|
|
server.quit()
|
|
def clickedd():
|
|
print(code2.get())
|
|
if code2.get() == body:
|
|
newWindow.destroy()
|
|
logging_account.loging(login=login, password=password, encrypt_code=encrypt_code)
|
|
else:
|
|
showerror(title='LogIn', message='code isnt correct')
|
|
# checking correct code
|
|
newWindow = Toplevel(windows.window)
|
|
newWindow.title("New windows.window")
|
|
newWindow.geometry("200x200")
|
|
# create windows.window for code
|
|
code2 = Entry(newWindow, width=10)
|
|
code2.grid(row=1)
|
|
button = Button(newWindow, text='Creating account', command=clickedd)
|
|
button.grid(row=2)
|
|
# login code for ur e-mail
|
|
def loging(login, password, encrypt_code):
|
|
try:
|
|
with open(f'{path_take.main_path}/{login}.cfg', 'rb+') as file:
|
|
password2 = decrypt(encrypt_code, file.read()).decode('utf8')
|
|
file.close()
|
|
if password == password2:
|
|
askokcancel(title='LogIn', message='LogIn succesful!')
|
|
deleting_text.del_text(when='all')
|
|
else:
|
|
showerror(title='LogIn', message='Password or login don`t correct. Try again!')
|
|
deleting_text.del_text(when='all')
|
|
except Exception as e:
|
|
print(e)
|
|
showerror(title='LogIn', message='Account don`t created!')
|
|
# log in function. u can use this for ur program
|
|
class deleting_text():
|
|
def del_text(when):
|
|
if when == 'login_entry':
|
|
windows.login_entry.delete(0, END)
|
|
elif when == 'password_entry':
|
|
windows.password_entry.delete(0, END)
|
|
elif when == 'encrypting':
|
|
windows.encrypting.delete(0, END)
|
|
elif when == 'email_entry':
|
|
windows.email_entry.delete(0, END)
|
|
elif when == 'all':
|
|
windows.login_entry.delete(0, END)
|
|
windows.password_entry.delete(0, END)
|
|
windows.encrypting.delete(0, END)
|
|
windows.email_entry.delete(0, END)
|
|
# delete text login, password, encrypt code and email
|
|
class buttons_treatment():
|
|
|
|
def clicked():
|
|
login = windows.windows.login_entry.get()
|
|
encrypt_code = windows.encrypting.get()
|
|
password = windows.password_entry.get()
|
|
toaddr = windows.email_entry.get()
|
|
logging_account.email_log(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code)
|
|
# login button
|
|
def creating_account_def():
|
|
login = windows.login_entry.get()
|
|
password = windows.password_entry.get()
|
|
encrypt_code = windows.encrypting.get()
|
|
toaddr = windows.email_entry.get()
|
|
|
|
if login == ['mypass', 'fromaddr']:
|
|
showerror(title='LogIn', message='This login blocked!')
|
|
deleting_text.del_text(when='windows.login_entry')
|
|
else:
|
|
creating_account.email_creat(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code)
|
|
# creating account button
|
|
def closed():
|
|
windows.windows.destroy()
|
|
# windows.window close button
|