v1.04 - автоматически закрывает окно терминала на старте.
parent
2932481f31
commit
6790a8626b
|
@ -14,6 +14,8 @@
|
|||
Сам файл БД вы можете хранить где угодно, хоть в паблик выкладывать.
|
||||
Главное его сохранять в нескольких местах :)
|
||||
|
||||
Скрипт keymaster.sh предназначен для запуска программы с рабочего стола, нужно только отредактировать путь к программе.
|
||||
|
||||
Благодарности, вопросы и реквесты фич складывать здесь или в комментариях к [этому посту].
|
||||
|
||||
Лицензия на код и документацию MIT. Вы можете свободно использовать, изменять и продавать код при условии сохранения
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
#!/usr/bin/env bash
|
||||
cd /home/anton/PycharmProjects/keymaster || exit
|
||||
nohup ./main.py
|
19
main.py
19
main.py
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue