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. Вы можете свободно использовать, изменять и продавать код при условии сохранения

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
# Key Master v1.03
# 02/07/2023
# https://t.me/ssleg © 2021
# Key Master v1.04
# 04/12/2023
# https://t.me/ssleg © 2020 2023
import sqlite3
from hashlib import md5, sha256
from os import path
from os import path, getppid, kill
from random import randint
from signal import SIGKILL
import PySimpleGUI as Sg
import cryptocode
@ -42,7 +43,7 @@ class LoginCard:
def is_valid(self):
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()
if control_hash == self.__hash:
return True
@ -236,7 +237,7 @@ def system_init():
[Sg.InputText(size=(20, 1), border_width=3)],
[Sg.Text('Повторите пароль:')],
[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)
while True:
event, values = window.read()
@ -269,7 +270,7 @@ def system_login():
status = False
password = ''
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)
while True:
event, values = window.read()
@ -322,7 +323,7 @@ def confirm_delete(card_name):
confirm_flag = False
layout = [[Sg.Text('Вы уверены, что хотите удалить карточку:')],
[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)]]
window = Sg.Window("KeyMaster - подтверждение", layout, modal=True)
while True:
@ -488,6 +489,8 @@ def main():
# начало исполнения кода.
if __name__ == '__main__':
kill(getppid(), SIGKILL)
if not path.exists('base.sqlite'):
login_status, master_key = system_init()
if login_status: