Python hakkında r10+
4
●124
- 29-10-2024, 19:45:20Merhaba python ile şifre yöneticisi yapıcam. bu uygulamada 256 bit şifreleme kullanılacak. Verdiğim şifreyi şifrelicek ve bunu databasede tutucak. Birde uygulamanın login ekranı olucak. Elinde böyle bir projesi olan varsa ücretsiz destek olabilir mi? Proje ödevimiz..
- 29-10-2024, 19:49:24
from cryptography.fernet import Fernet import sqlite3 # Veritabanı oluşturma def create_db(): conn = sqlite3.connect('password_manager.db') # Veritabanı dosyası c = conn.cursor() c.execute(''' CREATE TABLE IF NOT EXISTS users ( username TEXT PRIMARY KEY, password TEXT NOT NULL ) ''') conn.commit() conn.close() # Şifreleme anahtarı oluşturma def generate_key(): key = Fernet.generate_key() with open("secret.key", "wb") as key_file: key_file.write(key) # Anahtarı yükleme def load_key(): return open("secret.key", "rb").read() # Şifreleme def encrypt_password(password): key = load_key() f = Fernet(key) encrypted_password = f.encrypt(password.encode()) return encrypted_password # Şifreleri veritabanına ekleme def add_user(username, password): conn = sqlite3.connect('password_manager.db') c = conn.cursor() c.execute("INSERT INTO users (username, password) VALUES (?, ?)", (username, password)) conn.commit() conn.close() # Giriş kontrolü def login(username, password): conn = sqlite3.connect('password_manager.db') c = conn.cursor() c.execute("SELECT password FROM users WHERE username=?", (username,)) row = c.fetchone() conn.close() if row is None: return False else: encrypted_password = row[0] key = load_key() f = Fernet(key) try: decrypted_password = f.decrypt(encrypted_password).decode() return decrypted_password == password except Exception: return False # Uygulama akışı def main(): create_db() try: load_key() except FileNotFoundError: generate_key() # Anahtarı bir kez oluştur while True: choice = input("1. Kaydol\n2. Giriş\n3. Çık\nSeçiminiz: ") if choice == "1": username = input("Kullanıcı adı: ") password = input("Şifre: ") encrypted_password = encrypt_password(password) add_user(username, encrypted_password) print("Kayıt başarılı!") elif choice == "2": username = input("Kullanıcı adı: ") password = input("Şifre: ") if login(username, password): print("Giriş başarılı!") else: print("Giriş başarısız!") elif choice == "3": break else: print("Geçersiz seçim!") if __name__ == "__main__": main()
Bir kaç düzeltme yaptı mtekrar iyi akşamlar.çalışmaz ise
pip install cryptography sqlite3
yazmanız gerekbilir saygılar - 29-10-2024, 19:55:46daggez adlı üyeden alıntı: mesajı görüntüle
- 29-10-2024, 19:59:04Bu kod kullanıcıların şifrelerini güvenli bir şekilde saklayarak bir veritabanında depolayan ve giriş işlemi için şifre doğrulaması yapabilen bir şifre yöneticisi sizin istediğiniz bu değil miydi. Giriş var sonra orada databaseye kaydediyor karşılaştırıp doğru ise giriş yapıyor yanlış ise hata veriyor.
- 29-10-2024, 20:01:39daggez adlı üyeden alıntı: mesajı görüntüle