v1.04 - автоматически закрывает окно терминала на старте.

master
anton 2023-12-04 07:54:25 +03:00
parent 2932481f31
commit 6790a8626b
Signed by: anton
GPG Key ID: 50F7E97F96C07ECF
3 changed files with 16 additions and 8 deletions

View File

@ -14,6 +14,8 @@
Сам файл БД вы можете хранить где угодно, хоть в паблик выкладывать. Сам файл БД вы можете хранить где угодно, хоть в паблик выкладывать.
Главное его сохранять в нескольких местах :) Главное его сохранять в нескольких местах :)
Скрипт keymaster.sh предназначен для запуска программы с рабочего стола, нужно только отредактировать путь к программе.
Благодарности, вопросы и реквесты фич складывать здесь или в комментариях к [этому посту]. Благодарности, вопросы и реквесты фич складывать здесь или в комментариях к [этому посту].
Лицензия на код и документацию MIT. Вы можете свободно использовать, изменять и продавать код при условии сохранения Лицензия на код и документацию MIT. Вы можете свободно использовать, изменять и продавать код при условии сохранения

3
keymaster.sh Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
cd /home/anton/PycharmProjects/keymaster || exit
nohup ./main.py

19
main.py
View File

@ -1,13 +1,14 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# Key Master v1.03 # Key Master v1.04
# 02/07/2023 # 04/12/2023
# https://t.me/ssleg © 2021 # https://t.me/ssleg © 2020 2023
import sqlite3 import sqlite3
from hashlib import md5, sha256 from hashlib import md5, sha256
from os import path from os import path, getppid, kill
from random import randint from random import randint
from signal import SIGKILL
import PySimpleGUI as Sg import PySimpleGUI as Sg
import cryptocode import cryptocode
@ -42,7 +43,7 @@ class LoginCard:
def is_valid(self): def is_valid(self):
control_string = self.__name + self.__login + self.__password control_string = self.__name + self.__login + self.__password
if type(control_string) == str: if isinstance(control_string, str):
control_hash = md5(control_string.encode()).hexdigest() control_hash = md5(control_string.encode()).hexdigest()
if control_hash == self.__hash: if control_hash == self.__hash:
return True return True
@ -236,7 +237,7 @@ def system_init():
[Sg.InputText(size=(20, 1), border_width=3)], [Sg.InputText(size=(20, 1), border_width=3)],
[Sg.Text('Повторите пароль:')], [Sg.Text('Повторите пароль:')],
[Sg.InputText(size=(20, 1), border_width=3)], [Sg.InputText(size=(20, 1), border_width=3)],
[Sg.Button('Ok'), Sg.Text('', key='Err_text', text_color='firebrick1', font='style:bold')]] [Sg.Button('Ok'), Sg.Text('', key='Err_text', text_color='violetred4', font='Helvetica 15 bold')]]
window = Sg.Window("KeyMaster - приветствие", layout) window = Sg.Window("KeyMaster - приветствие", layout)
while True: while True:
event, values = window.read() event, values = window.read()
@ -269,7 +270,7 @@ def system_login():
status = False status = False
password = '' password = ''
layout = [[Sg.Text('Пароль:'), Sg.InputText(size=(20, 1), border_width=3, password_char='*')], layout = [[Sg.Text('Пароль:'), Sg.InputText(size=(20, 1), border_width=3, password_char='*')],
[Sg.Button('Ok'), Sg.Text('', key='Err_text', text_color='firebrick1', font='style:bold')]] [Sg.Button('Ok'), Sg.Text('', key='Err_text', text_color='violetred4', font='Helvetica 15 bold')]]
window = Sg.Window("KeyMaster - вход", layout, return_keyboard_events=True) window = Sg.Window("KeyMaster - вход", layout, return_keyboard_events=True)
while True: while True:
event, values = window.read() event, values = window.read()
@ -322,7 +323,7 @@ def confirm_delete(card_name):
confirm_flag = False confirm_flag = False
layout = [[Sg.Text('Вы уверены, что хотите удалить карточку:')], layout = [[Sg.Text('Вы уверены, что хотите удалить карточку:')],
[Sg.Text(card_name + '?')], [Sg.Text(card_name + '?')],
[Sg.Text('Это необратимое действие!!!', text_color='firebrick1', font='style:bold')], [Sg.Text('Это необратимое действие!!!', text_color='violetred4', font='Helvetica 15 bold')],
[Sg.Button('Ok'), Sg.Button('Отменить', focus=True)]] [Sg.Button('Ok'), Sg.Button('Отменить', focus=True)]]
window = Sg.Window("KeyMaster - подтверждение", layout, modal=True) window = Sg.Window("KeyMaster - подтверждение", layout, modal=True)
while True: while True:
@ -488,6 +489,8 @@ def main():
# начало исполнения кода. # начало исполнения кода.
if __name__ == '__main__': if __name__ == '__main__':
kill(getppid(), SIGKILL)
if not path.exists('base.sqlite'): if not path.exists('base.sqlite'):
login_status, master_key = system_init() login_status, master_key = system_init()
if login_status: if login_status: