Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- TCIPHER 1.0 (Dark). Автор: Трошин Антон. GitHub: TroshinCode
- Документация в README.md
- '''
- from tkinter import *
- from tkinter import messagebox
- import random
- error_list = [
- 'У Вас не установлен модуль pyperclip. См. в README.md',
- 'Файл dataTcipher.py поврежден или не найден. См. в README.md',
- ]
- try:
- import pyperclip
- copypasteerror = False
- except ModuleNotFoundError or ImportError:
- messagebox.showerror('Ошибка №0',error_list[0])
- copypasteerror = True
- try:
- from dataTcipher import ciphers_rus, ciphers_eng, languages
- dataerror = False
- except ModuleNotFoundError or ImportError:
- messagebox.showerror('Ошибка №1',error_list[1])
- dataerror = True
- if dataerror or copypasteerror:
- sys.exit()
- root = Tk()
- root.title('Tcipher 1.0')
- root.resizable(False,False)
- root["bg"] = "gray22"
- var_logo = ['logo','logo1','logo2','logo3','logo4']
- answer = []
- def answerwindow(encrypt_or_decrypt, whereanswer):
- def copy():
- pyperclip.copy(out.get(1.0, END))
- child = Toplevel()
- child.resizable(False, False)
- child["bg"] = "gray22"
- out = Text(child, width=40, height=13, font='Calibri 12',
- background='#555', foreground='white')
- out.grid(row=0)
- if encrypt_or_decrypt:
- for symbol in whereanswer:
- out.insert(1.0, symbol+' ')
- child.title('Успешно зашифрованно')
- else:
- for symbol in whereanswer:
- out.insert(1.0, symbol+'')
- child.title('Успешно расшифрованно')
- copy_button = Button(child, text='Скопировать',
- background='#555', foreground='white',command=copy)
- copy_button.grid(row=1)
- def encrypt():
- lang = lang_select.get()
- answer.clear()
- key = inp.get(1.0, END)
- def encrypt_part(langcode, ciphers):
- answer.insert(0, langcode)
- for symbol in list(key):
- if symbol in '1234567890':
- answer.insert(0, str(symbol))
- if symbol == ' ':
- answer.insert(0, 'qP')
- else:
- for part in ciphers:
- if symbol == part[0]:
- answer.insert(0, part[1])
- if symbol == part[0].upper():
- answer.insert(0, part[1]+'b')
- if lang == 'Русский': encrypt_part(languages[0], ciphers_rus)
- if lang == 'English': encrypt_part(languages[1], ciphers_eng)
- answerwindow(True, answer)
- def decrypt():
- answer.clear()
- key = inp.get(1.0, END)
- def decrypt_part(ciphers):
- for symbol in key.split(' '):
- if symbol in '1234567890':
- answer.insert(0, str(s))
- if symbol == 'qP':
- answer.insert(0,' ')
- else:
- for part in ciphers:
- if symbol == part[1]:
- answer.insert(0, part[0])
- if symbol == part[1]+'b':
- answer.insert(0, part[0].upper())
- if languages[0] in key.split(' '): decrypt_part(ciphers_rus)
- if languages[1] in key.split(' '): decrypt_part(ciphers_eng)
- answerwindow(False, answer)
- photo = PhotoImage(file = "design/darklogo.gif")
- logo = Label(image = photo, background='gray22')
- logo.grid(row=0)
- label_before_langselect = Label(text='Выбор языка текста для шифрования:\n(при расшифровке не используется)',
- font='Calibri 9', background='gray22', foreground='white')
- label_before_langselect.grid(row=1, sticky='w', padx=4)
- lang_select = StringVar(root)
- lang_select.set("Русский")
- lang_select_bar = OptionMenu(root, lang_select, "Русский", "English")
- lang_select_bar.configure(background='#555', foreground='white')
- lang_select_bar.grid(row=1, sticky='e', padx=5)
- inp = Text(width=37, height=10, background='#555', foreground='white', font='Calibri 12')
- inp.grid(row=2)
- en_button = Button(text='Зашифровать', background='#555', foreground='white', command=encrypt)
- en_button.grid(row=3, sticky='w', padx=5, pady=1, ipadx=11)
- de_button = Button(text='Расшифровать', background='#555', foreground='white', command=decrypt)
- de_button.grid(row=4, sticky='w', padx=5, pady=1, ipadx=8)
- clr_button = Button(text='Очистить', background='#555', foreground='white',
- command=lambda: inp.delete(1.0,END))
- clr_button.grid(row=3, sticky='e', padx=5, pady=1, ipadx=8)
- pst_button = Button(text='Вставить', background='#555', foreground='white',
- command=lambda: inp.insert(1.0, pyperclip.paste()))
- pst_button.grid(row=4, sticky='e', padx=5, pady=1, ipadx=10)
- author = Label(text='TroshinCode. 2019-2020', font='Calibri 8', background='gray22', foreground='white')
- author.grid(row=5, sticky='e', padx=5, pady=1)
- status = Label(text='Dark', font='Calibri 9', background='gray22', foreground='white')
- status.grid(row=5, sticky='w', padx=5, pady=1)
- root.mainloop()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement