mirror of
https://github.com/yawaflua/LogIn-App.git
synced 2025-12-09 19:59:34 +02:00
232 lines
9.7 KiB
Python
232 lines
9.7 KiB
Python
import os, smtplib
|
|
from random import randint
|
|
from tkinter import *
|
|
from simplecrypt import encrypt, decrypt
|
|
from tkinter.messagebox import showerror, showinfo, askokcancel
|
|
from email.mime.multipart import MIMEMultipart
|
|
from email.mime.text import MIMEText
|
|
|
|
class path_take():
|
|
main_path = os.path.abspath(__file__).replace(os.path.basename(__file__), '')
|
|
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 = entry_labels_etc.login_entry.get()
|
|
toaddr = entry_labels_etc.email_entry.get()
|
|
encrypt_code = entry_labels_etc.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
|
|
class email():
|
|
def email(toaddr, login, type_msg, password, encrypt_code):
|
|
code = randint(10000, 99999)
|
|
|
|
if type_msg == "debug":
|
|
print("Debuging....")
|
|
elif type_msg == 'forgot':
|
|
msg = MIMEMultipart()
|
|
msg['From'] = fromaddr
|
|
msg['To'] = toaddr
|
|
msg['Subject'] = f"{code}. LogIn creating account"
|
|
body = f"Your code: {code} \nIf you don`t asked this code, ignore the email."
|
|
|
|
|
|
|
|
elif type_msg == 'registration' or 'login':
|
|
msg = MIMEMultipart()
|
|
msg['From'] = fromaddr
|
|
msg['To'] = toaddr
|
|
msg['Subject'] = f"{code}. LogIn creating account"
|
|
body = f"{code}"
|
|
|
|
messageReg = MIMEMultipart()
|
|
messageReg['From'] = fromaddr
|
|
messageReg['To'] = toaddr
|
|
messageReg['Subject'] = f"LogIn creating account"
|
|
|
|
|
|
bodyReg = f'''Your LogIn: {login}
|
|
Your password: {password}
|
|
Your decrypt phrase: {encrypt_code}
|
|
Thanks for using my app!
|
|
Made in Russia with love!'''
|
|
messageReg.attach(MIMEText(bodyReg, 'plain'))
|
|
textReg = messageReg.as_string()
|
|
else:
|
|
showerror('Oh no!', 'Oh no! Creator idiot! Send this program in my Telegram: @bebra_YaFlay')
|
|
server = smtplib.SMTP('smtp.gmail.com', 587)
|
|
server.starttls()
|
|
server.login(fromaddr, mypass)
|
|
|
|
text = msg.as_string()
|
|
|
|
server.sendmail(fromaddr, toaddr, text)
|
|
|
|
def command():
|
|
if type_msg == 'forgot':
|
|
if getCode.get() in 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')
|
|
server.quit()
|
|
else:
|
|
showerror(title='LogIn', message='Code isnt correct')
|
|
elif type_msg == 'registration':
|
|
if getCode.get() in body:
|
|
newWindow.destroy()
|
|
server.sendmail(fromaddr, toaddr, textReg)
|
|
server.quit()
|
|
creating_account.creating_account(login=login, password=password, encrypt_code=encrypt_code, toaddr=toaddr)
|
|
else:
|
|
showerror(title='LogIn', message='code isnt correct')
|
|
elif type_msg == 'login':
|
|
if getCode.get() in body:
|
|
newWindow.destroy()
|
|
logging_account.loging(login=login, password=password, encrypt_code=encrypt_code)
|
|
else:
|
|
showerror(title='LogIn', message='Code isnt correct')
|
|
|
|
|
|
newWindow = Toplevel(window)
|
|
newWindow.title("LogIn code")
|
|
newWindow.geometry("200x200")
|
|
getCode = Entry(newWindow, width=10)
|
|
getCode.grid(row=1)
|
|
button = Button(newWindow, text='Creating account', command=command)
|
|
button.grid(row=2)
|
|
server.quit()
|
|
# send code for ur mail
|
|
class creating_account():
|
|
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 loging(login, password, encrypt_code):
|
|
try:
|
|
with open(f'{path_take.main_path}/{login}.cfg', 'rb+') as file:
|
|
passwordDecrypted = decrypt(encrypt_code, file.read()).decode('utf8')
|
|
file.close()
|
|
if password == passwordDecrypted:
|
|
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':
|
|
entry_labels_etc.login_entry.delete(0, END)
|
|
elif when == 'password_entry':
|
|
entry_labels_etc.password_entry.delete(0, END)
|
|
elif when == 'encrypting':
|
|
entry_labels_etc.encrypting.delete(0, END)
|
|
elif when == 'email_entry':
|
|
entry_labels_etc.email_entry.delete(0, END)
|
|
elif when == 'all':
|
|
entry_labels_etc.login_entry.delete(0, END)
|
|
entry_labels_etc.password_entry.delete(0, END)
|
|
entry_labels_etc.encrypting.delete(0, END)
|
|
entry_labels_etc.email_entry.delete(0, END)
|
|
# delete text login, password, encrypt code and email
|
|
class buttons_treatment():
|
|
|
|
def clicked():
|
|
login = entry_labels_etc.login_entry.get()
|
|
encrypt_code = entry_labels_etc.encrypting.get()
|
|
password = entry_labels_etc.password_entry.get()
|
|
toaddr = entry_labels_etc.email_entry.get()
|
|
email.email(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code, type_msg='login')
|
|
# login button
|
|
def creating_account_def():
|
|
login = entry_labels_etc.login_entry.get()
|
|
password = entry_labels_etc.password_entry.get()
|
|
encrypt_code = entry_labels_etc.encrypting.get()
|
|
toaddr = entry_labels_etc.email_entry.get()
|
|
|
|
if login == ['mypass', 'fromaddr', 'debug']:
|
|
showerror(title='LogIn', message='This login blocked!')
|
|
deleting_text.del_text(when='login_entry')
|
|
else:
|
|
email.email(toaddr=toaddr, login=login, password=password, encrypt_code=encrypt_code, type_msg='registration')
|
|
# creating account button
|
|
def closed():
|
|
window.destroy()
|
|
# window close button
|
|
|
|
class entry_labels_etc():
|
|
login_label = Label(text='Login:')
|
|
password_label = Label(text='Password:')
|
|
encrypt_code_label = Label(text='En(De)crypt code:')
|
|
email_label = Label(text='Your e-mail:')
|
|
# labels for entry
|
|
login_entry = Entry(width=20)#, window )
|
|
# login entry
|
|
password_entry = Entry(width=20, show='*')#,window)
|
|
# password entrywith seeked symbols
|
|
encrypting = Entry( width=20, show='*')#,window)
|
|
# encrypt code with seeked symbols
|
|
email_entry = Entry( width=20)#,window)
|
|
# email entry
|
|
create_account_button = Button( text='Create account', command=buttons_treatment.creating_account_def)#,window)
|
|
# create account button
|
|
login_button = Button( text='LogIn', command=buttons_treatment.clicked)#,window)
|
|
# log in button
|
|
forgot_but = Button(text='Forgot password?', command=forgot_password.forgot)#,window)
|
|
# forgot password button
|
|
close = Button(text='Close', command=buttons_treatment.closed)#,window)
|
|
# close app button
|
|
# buttons and entry
|
|
window = Tk()
|
|
window.title('LogIn App')
|
|
window.geometry('415x180')
|
|
# window create
|
|
entry_labels_etc.email_entry.grid(column=2, row=3)
|
|
entry_labels_etc.password_entry.grid(column=2, row=1)
|
|
entry_labels_etc.encrypting.grid(column=2, row=2)
|
|
entry_labels_etc.login_entry.grid(column=2,row=0)
|
|
# entry
|
|
entry_labels_etc.create_account_button.grid(row=1, column=3)
|
|
entry_labels_etc.close.grid(column=3, row=3)
|
|
entry_labels_etc.forgot_but.grid(row=2, column=3)
|
|
entry_labels_etc.login_button.grid(row=0, column=3)
|
|
# buttons
|
|
entry_labels_etc.login_label.grid(column=1, row=0)
|
|
entry_labels_etc.password_label.grid(column=1, row=1)
|
|
entry_labels_etc.encrypt_code_label.grid(column=1, row=2)
|
|
entry_labels_etc.email_label.grid(column=1, row=3)
|
|
# labels
|
|
# grid for buttons and entry
|
|
window.mainloop()
|
|
# Thanks for watching my shit-code!
|
|
# If u seeked a bug, write me in Telegram: @bebra_yaflay or in VK(russian facebook and instagram): https://vk.com/bebra_yaflay |