add base files

This commit is contained in:
2025-03-17 19:32:37 +01:00
parent 93b6e4fc5d
commit 26a956eead
3 changed files with 72 additions and 1 deletions

View File

@@ -4,4 +4,7 @@ version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
dependencies = [
"cryptography>=44.0.2",
"playwright>=1.50.0",
]

32
src/database.py Normal file
View File

@@ -0,0 +1,32 @@
import sqlite3
class Database:
def __init__(self):
self.conn = sqlite3.connect("database.db")
self.cursor = self.conn.cursor()
self.create_table()
def create_table(self):
self.cursor.execute(
"CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, username TEXT, password TEXT)"
)
self.conn.commit()
def add_user(self, username, password):
self.cursor.execute(
"INSERT INTO users (username, password) VALUES (?, ?)", (username, password)
)
self.conn.commit()
def get_password(self, username):
self.cursor.execute(
"SELECT password FROM users WHERE username = ?", (username,)
)
return self.cursor.fetchone()
def change_password(self, username, password):
self.cursor.execute(
"UPDATE users SET password = ? WHERE username = ?", (password, username)
)
self.conn.commit()

36
src/security.py Normal file
View File

@@ -0,0 +1,36 @@
import cryptography
from cryptography.fernet import Fernet
from .database import Database
# import library to create a random key
import random
def set_data():
user = input("Enter username: ")
fernet_key = Fernet.generate_key()
with open("key.key", "w") as key_file:
key = f"{user}|{fernet_key.decode()}"
key_file.write(key)
# ask for password, do not show the password
password = input("Enter password: ")
# encrypt the password
cipher_suite = Fernet(fernet_key)
ciphered_text = cipher_suite.encrypt(password.encode())
db = Database()
db.add_user(user, ciphered_text)
def get_data():
with open("key.key", "r") as key_file:
key = key_file.read()
user = key.split("|")[0]
key = key.split("|")[1]
db = Database()
password = db.get_password(user)
cipher_suite = Fernet(key)
# decrypt the password
plain_text = cipher_suite.decrypt(password[0])
print(plain_text.decode())