Skip to content

A secure console-based password management solution—initially console-only, with planned UI and advanced feature improvements—stores and encrypts your passwords using robust cryptographic algorithms.

Notifications You must be signed in to change notification settings

Ahmed-Gaper/Password-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Password-Manager

A secure console-based password management solution—initially console-only, with planned UI and advanced feature improvements—that stores and encrypts your passwords using robust cryptographic algorithms.

Project Structure

📦 PasswordManager
├── 📂 Core              # Core application logic
│   ├── IPasswordManager.cs         - Main service interface
│   ├── PasswordManagerService.cs   - Core implementation
│   ├── IEncryptionService.cs       - Encryption contracts
│   ├── XorEncryptionService.cs     - XOR+HMAC implementation
│   ├── IAuthenticationService.cs   - Auth contracts
│   ├── SHA_1AuthenticationService.cs - SHA-1 implementation
├── 📂 Models            # Data models
│   ├── PasswordEntry.cs            - Password entry structure
├── 📂 Database          # Database operations
│   ├── IDatabaseService.cs         - DB contracts
│   ├── SQLiteDatabaseService.cs    - SQLite implementation
├── 📂 UI                # User interface
│   ├── IUserInterface.cs           - UI contracts
│   ├── ConsoleUserInterface.cs     - Console UI implementation
│   ├── ConsoleHelper.cs            - UI utilities
│   ├── IInputValidator.cs          - Validation contracts
│   ├── InputValidator.cs           - Input validation
└── Program.cs          # Entry point

UML-Activity-diagram

Features

  • User Authentication with SHA-1 Hashing
  • XOR Encryption with HMAC-SHA256
  • Multi-user (separate database per user)
  • Strong Password Generator
  • Robust handling for any unexpected input to ensure reliability and security.
  • Password Entry Management
    • PasswordManager-MainMeu

Technical Details

Authentication

  • Implements SHA-1 hashing for master passwords to securely safeguard each user credentials in thier setion at the Password Manager.

Encryption

  • Enhance the XOR cipher with HMAC-SHA256 to securely encrypt each password before storing it in the database.

Database Structure

  • Each user has a dedicated SQLite database, named after their email, which is loaded upon successful login. All stored passwords within the database are securely encrypted, ensuring robust privacy and security.
    • Load-each-user-database
    • Load-each-user-database

Handling unexpected input and wrong confirmation

  • Wrong_LogIn
  • Handling-unexpected_input_1
  • Handling-unexpected_input_2
  • Handling-wrong-confirmation

Installation

Prerequisites

  • .NET 6.0 SDK or later
  • GIT

Steps

  1. Clone the repository
git clone https://github.com/yourusername/PasswordManager.git
cd PasswordManager
  1. Restore dependencies:
Restore dependencies:
  1. Run the application:
dotnet run

Contributing

We welcome contributions! Please follow these guidelines:

  1. Fork the repository
  2. Create a feature branch:
git checkout -b feature/your-feature-name
  1. Implement your changes following existing patterns:
  • Use interface-driven design
  • Maintain separation between Core/UI/Database layers
  1. Test thoroughly
  2. Submit a Pull Request with description of changes

About

A secure console-based password management solution—initially console-only, with planned UI and advanced feature improvements—stores and encrypts your passwords using robust cryptographic algorithms.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages