https://github.com/ahmed-gaper/password-manager
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.
https://github.com/ahmed-gaper/password-manager
ado-net cli-application encryption ooad oop sha-1-hash sqlite xor-cipher
Last synced: 26 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/ahmed-gaper/password-manager
- Owner: Ahmed-Gaper
- Created: 2025-02-03T22:10:44.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-13T04:57:12.000Z (over 1 year ago)
- Last Synced: 2025-02-13T05:28:30.318Z (over 1 year ago)
- Topics: ado-net, cli-application, encryption, ooad, oop, sha-1-hash, sqlite, xor-cipher
- Language: C#
- Homepage:
- Size: 16.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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
```plaintext
📦 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](https://lucid.app/lucidchart/3bb6d3b4-ce77-4b12-9143-0361bd801a14/edit?viewport_loc=285%2C990%2C1201%2C501%2C0_0&invitationId=inv_86453fbd-9a38-4aa1-8292-8f35504f0705)

## 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
- 
## 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.
- 
- 
### Handling unexpected input and wrong confirmation
- 
- 
- 
- 
## Installation
### Prerequisites
- .NET 6.0 SDK or later
- GIT
### Steps
1. Clone the repository
```powershell
git clone https://github.com/yourusername/PasswordManager.git
cd PasswordManager
```
2. Restore dependencies:
```powershell
Restore dependencies:
```
3. Run the application:
```powershell
dotnet run
```
## Contributing
We welcome contributions! Please follow these guidelines:
1. Fork the repository
2. Create a feature branch:
```powershell
git checkout -b feature/your-feature-name
```
3. Implement your changes following existing patterns:
- Use interface-driven design
- Maintain separation between Core/UI/Database layers
4. Test thoroughly
5. Submit a Pull Request with description of changes
-----------------------------------------------------