Скрипт – Мениджър на пароли

Скрипт - Мениджър на пароли

Този скрипт е предназначен да ви помогне да управлявате паролите си по безопасен и организиран начин. Той използва JSON файл за съхраняване на данните ви, което означава, че можете лесно да ги синхронизирате с други устройства.

Общо взето, скриптът съчетава функционалности за генериране, съхранение и търсене на пароли, предоставяйки потребителски интерфейс за лесна навигация и управление на данните за паролите.

Използвани библиотеки

Скриптът използва следните библиотеки:

  • Tkinter: Тази библиотека се използва за създаване на потребителския интерфейс на скрипта.
  • messagebox: Тази библиотека се използва за показване на съобщения на потребителя.
  • random: Тази библиотека се използва за генериране на случайни пароли.
  • json: Тази библиотека се използва за четене и запис на данни в JSON формат.

Как да инсталирате библиотеките

Ако използвате Python 3, можете да инсталирате библиотеките, като използвате следния код:

pip install tkinter
pip install messagebox
pip install random
pip install json

Как да използвате скрипта

За да започнете, просто стартирайте скрипта. Ще се появи прозорец с три полета за въвеждане:

  • Уебсайт: Въведете името на уебсайта или приложението, за което искате да съхраните паролата.
  • Имейл/Потребителско име: Въведете имейл адреса или потребителското си име за съответния уебсайт или приложение.
  • Парола: Въведете паролата, която искате да съхраните.

Можете да генерирате парола, като кликнете върху бутона "Генерирай парола". Този бутон ще генерира случайна парола, която отговаря на зададени от вас критерии, като например дължина, наличие на букви, цифри и символи.

За да добавите паролата, кликнете върху бутона "Добави". Паролата ще бъде запазена в JSON файла.

За да намерите парола, въведете името на уебсайта в полето "Уебсайт" и кликнете върху бутона "Търсене". Ще се появи прозорец с информацията за паролата.

Създаване на скрипта

Създайте нов файл и добавете следния код:

from tkinter import *
from tkinter import messagebox
from random import choice, randint, shuffle
import json

# ---------------------------- ГЕНЕРАТОР НА ПАРОЛИ ------------------------------- #

def генерирай_парола():
    букви = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u',
               'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P',
               'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
    числа = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    символи = ['!', '#', '$', '%', '&', '(', ')', '*', '+']

    букви_парола = [choice(букви) for _ in range(randint(8, 10))]
    символи_парола = [choice(символи) for _ in range(randint(2, 4))]
    числа_парола = [choice(числа) for _ in range(randint(2, 4))]

    списък_парола = букви_парола + символи_парола + числа_парола

    shuffle(списък_парола)

    парола = "".join(списък_парола)
    поле_парола.delete(0, END)
    поле_парола.insert(0, парола)

# ---------------------------- ЗАПАЗИ ПАРОЛА ------------------------------- #

def запази():
    уебсайт = поле_уебсайт.get()
    имейл = поле_имейл.get()
    парола = поле_парола.get()
    нови_данни = {
        уебсайт: {
            "имейл": имейл,
            "парола": парола,
        }
    }

    if len(уебсайт) == 0 or len(парола) == 0:
        messagebox.showinfo(title="Опа", message="Моля, уверете се, че не сте оставили празни полета.")
    else:
        try:
            with open("данни.json", "r") as файл_данни:
                данни = json.load(файл_данни)

        except FileNotFoundError:
            with open("данни.json", "w") as файл_данни:
                json.dump(нови_данни, файл_данни, indent=4)

        else:
            данни.update(нови_данни)

            with open("данни.json", "w") as файл_данни:
                json.dump(данни, файл_данни, indent=4)

        finally:
            поле_уебсайт.delete(0, END)
            поле_парола.delete(0, END)

# ---------------------------- НАСТРОЙКИ НА ПОТРЕБИТЕЛСКИЯ ИНТЕРФЕЙС ------------------------------- #

def намери_парола():
    уебсайт = поле_уебсайт.get()
    try:
        with open("данни.json") as файл_данни:
            данни = json.load(файл_данни)
    except FileNotFoundError:
        messagebox.showinfo(title="Грешка", message="Файлът с данни не е намерен.")
    else:
        if уебсайт in данни:
            имейл = данни[уебсайт]["имейл"]
            парола = данни[уебсайт]["парола"]
            messagebox.showinfo(title=уебсайт, message=f"Уебсайт: {уебсайт}\nИмейл: {имейл}\nПарола: {парола}")
        else:
            messagebox.showinfo(title="Грешка", message=f"Няма данни за {уебсайт}.")

# НАСТРОЙКИ НА ПОТРЕБИТЕЛСКИЯ ИНТЕРФЕЙС #

прозорец = Tk()
прозорец.title("Мениджър на Пароли")
прозорец.config(padx=50, pady=50)

платно = Canvas(height=200, width=200)
лого_изображение = PhotoImage(file="logo.png")
платно.create_image(100, 100, image=лого_изображение)
платно.grid(row=0, column=1)

# Етикети
етикет_уебсайт = Label(text="Уебсайт")
етикет_уебсайт.grid(row=1, column=0)
етикет_имейл = Label(text="Имейл/Потребителско име")
етикет_имейл.grid(row=2, column=0)
етикет_парола = Label(text="Парола")
етикет_парола.grid(row=3, column=0)

# Полета за въвеждане
поле_уебсайт = Entry(width=21)
поле_уебсайт.grid(row=1, column=1)
поле_уебсайт.focus()
поле_имейл = Entry(width=35)
поле_имейл.grid(row=2, column=1, columnspan=2)
поле_имейл.insert(0, "")
поле_парола = Entry(width=21)
поле_парола.grid(row=3, column=1)

# Бутони
бутон_генерирай_парола = Button(text="Генерирай Парола", command=генерирай_парола)
бутон_генерирай_парола.grid(row=3, column=2)
бутон_търсене = Button(text="Търсене", width=10, command=намери_парола)
бутон_търсене.grid(row=1, column=2)
бутон_добави = Button(text="Добави", width=36, command=запази)
бутон_добави.grid(row=4, column=1, columnspan=2)

прозорец.mainloop()

Запазете файла и му дайте име, примерно password_manager.py

Заключение

Този скрипт е лесен за използване и безопасен начин да управлявате паролите си. Той е чудесен инструмент за всеки, който иска да поддържа силни и безопасни пароли за своите уебсайтове и приложения.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:

Telegram Logo
Avatar photo

Fedia

Здравейте, urocibg.eu е независим уебсайт, който е създаден и подържан от мен – Федя Серафиев. Сайта съм го основал през 2008 година и съдържа статии, съвети, ръководства, новини и програми за Windows, Android и Linux. Ако имате въпроси относно възможностите за реклама в сайта или за връзка с мен ТУК.

Може да харесате още...