def run(self): """Main CLI loop.""" print("=" * 50) print("🔐 BreeZip Password Manager v1.0") print("=" * 50) if not os.path.exists(STORAGE_FILE): print("First run: Create a master password.") self.set_master_password() else: self.load() if not self.master_password: print("Exiting.") return

def set_master_password(self): """Initialize or change master password.""" while True: pwd1 = getpass.getpass("New master password: ") pwd2 = getpass.getpass("Confirm master password: ") if pwd1 == pwd2 and len(pwd1) >= 6: self.master_password = pwd1 print("✅ Master password set.") break else: print("❌ Passwords must match and be at least 6 chars.")

def _derive_key(self, password: str, salt: bytes) -> bytes: """Derive a 32-byte AES key from master password using PBKDF2.""" kdf = PBKDF2( algorithm=hashes.SHA256(), length=32, salt=salt, iterations=ITERATIONS, backend=default_backend() ) return kdf.derive(password.encode())

def list_services(self): """List all stored service names.""" if not self.data: print("⚠️ No entries.") else: print("\n📋 Stored services:") for i, service in enumerate(self.data.keys(), 1): print(f"i. service")

def add_entry(self): """Add a new service password entry.""" service = input("Service name (e.g., Gmail): ").strip() if not service: print("❌ Service name required.") return username = input("Username/Email: ").strip() gen_choice = input("Generate password? (y/n): ").lower() if gen_choice == 'y': length = int(input("Length (default 16): ") or 16) password = self.generate_password(length) print(f"🔑 Generated password: password") else: password = getpass.getpass("Password: ") notes = input("Optional notes: ").strip() self.data[service] = "username": username, "password": password, "notes": notes self.save() print(f"✅ Entry for 'service' added.")

def save(self): """Save data to encrypted file.""" if not self.master_password: print("❌ Master password not set.") return json_str = json.dumps(self.data, indent=2) enc_content = self._encrypt(json_str, self.master_password) with open(STORAGE_FILE, "w") as f: f.write(enc_content) print("✅ Data saved securely.")

Каталог

Breezip: Password

def run(self): """Main CLI loop.""" print("=" * 50) print("🔐 BreeZip Password Manager v1.0") print("=" * 50) if not os.path.exists(STORAGE_FILE): print("First run: Create a master password.") self.set_master_password() else: self.load() if not self.master_password: print("Exiting.") return

def set_master_password(self): """Initialize or change master password.""" while True: pwd1 = getpass.getpass("New master password: ") pwd2 = getpass.getpass("Confirm master password: ") if pwd1 == pwd2 and len(pwd1) >= 6: self.master_password = pwd1 print("✅ Master password set.") break else: print("❌ Passwords must match and be at least 6 chars.") breezip password

def _derive_key(self, password: str, salt: bytes) -> bytes: """Derive a 32-byte AES key from master password using PBKDF2.""" kdf = PBKDF2( algorithm=hashes.SHA256(), length=32, salt=salt, iterations=ITERATIONS, backend=default_backend() ) return kdf.derive(password.encode()) def run(self): """Main CLI loop

def list_services(self): """List all stored service names.""" if not self.data: print("⚠️ No entries.") else: print("\n📋 Stored services:") for i, service in enumerate(self.data.keys(), 1): print(f"i. service") salt: bytes) -&gt

def add_entry(self): """Add a new service password entry.""" service = input("Service name (e.g., Gmail): ").strip() if not service: print("❌ Service name required.") return username = input("Username/Email: ").strip() gen_choice = input("Generate password? (y/n): ").lower() if gen_choice == 'y': length = int(input("Length (default 16): ") or 16) password = self.generate_password(length) print(f"🔑 Generated password: password") else: password = getpass.getpass("Password: ") notes = input("Optional notes: ").strip() self.data[service] = "username": username, "password": password, "notes": notes self.save() print(f"✅ Entry for 'service' added.")

def save(self): """Save data to encrypted file.""" if not self.master_password: print("❌ Master password not set.") return json_str = json.dumps(self.data, indent=2) enc_content = self._encrypt(json_str, self.master_password) with open(STORAGE_FILE, "w") as f: f.write(enc_content) print("✅ Data saved securely.")