{"id":25403126,"url":"https://github.com/ahmed-gaper/password-manager","last_synced_at":"2026-05-04T07:36:41.397Z","repository":{"id":275665548,"uuid":"926804568","full_name":"Ahmed-Gaper/Password-Manager","owner":"Ahmed-Gaper","description":"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.","archived":false,"fork":false,"pushed_at":"2025-02-13T04:57:12.000Z","size":16987,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T05:28:30.318Z","etag":null,"topics":["ado-net","cli-application","encryption","ooad","oop","sha-1-hash","sqlite","xor-cipher"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ahmed-Gaper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-03T22:10:44.000Z","updated_at":"2025-02-13T05:02:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"90f6be8d-b179-4ac1-8da8-e43b7def27fa","html_url":"https://github.com/Ahmed-Gaper/Password-Manager","commit_stats":null,"previous_names":["ahmed-gaper/password-manager"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Gaper%2FPassword-Manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Gaper%2FPassword-Manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Gaper%2FPassword-Manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ahmed-Gaper%2FPassword-Manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ahmed-Gaper","download_url":"https://codeload.github.com/Ahmed-Gaper/Password-Manager/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248574894,"owners_count":21127085,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ado-net","cli-application","encryption","ooad","oop","sha-1-hash","sqlite","xor-cipher"],"created_at":"2025-02-16T02:28:00.168Z","updated_at":"2026-05-04T07:36:41.392Z","avatar_url":"https://github.com/Ahmed-Gaper.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Password-Manager\nA 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.\n## Project Structure\n```plaintext\n📦 PasswordManager\n├── 📂 Core              # Core application logic\n│   ├── IPasswordManager.cs         - Main service interface\n│   ├── PasswordManagerService.cs   - Core implementation\n│   ├── IEncryptionService.cs       - Encryption contracts\n│   ├── XorEncryptionService.cs     - XOR+HMAC implementation\n│   ├── IAuthenticationService.cs   - Auth contracts\n│   ├── SHA_1AuthenticationService.cs - SHA-1 implementation\n├── 📂 Models            # Data models\n│   ├── PasswordEntry.cs            - Password entry structure\n├── 📂 Database          # Database operations\n│   ├── IDatabaseService.cs         - DB contracts\n│   ├── SQLiteDatabaseService.cs    - SQLite implementation\n├── 📂 UI                # User interface\n│   ├── IUserInterface.cs           - UI contracts\n│   ├── ConsoleUserInterface.cs     - Console UI implementation\n│   ├── ConsoleHelper.cs            - UI utilities\n│   ├── IInputValidator.cs          - Validation contracts\n│   ├── InputValidator.cs           - Input validation\n└── Program.cs          # Entry point\n```\n## [UML Activity Diagram](https://lucid.app/lucidchart/3bb6d3b4-ce77-4b12-9143-0361bd801a14/edit?viewport_loc=285%2C990%2C1201%2C501%2C0_0\u0026invitationId=inv_86453fbd-9a38-4aa1-8292-8f35504f0705)\n![UML-Activity-diagram](Photos/UML-Activity-diagram.png)\n## Features \n- User Authentication with `SHA-1 Hashing` \n- `XOR` Encryption with `HMAC-SHA256` \n- Multi-user (separate database per user)\n-  Strong Password Generator\n-  Robust handling for any unexpected input to ensure reliability and security. \n- Password Entry Management\n  - ![PasswordManager-MainMeu](Photos/PasswordManager-MainMeu.png)\n  \n## Technical Details \n### Authentication \n- Implements `SHA-1` hashing for master passwords to securely safeguard each user credentials in thier setion at the Password Manager.\n### Encryption\n- Enhance the `XOR cipher` with `HMAC-SHA256` to securely encrypt each password before storing it in the database.\n### Database Structure\n- 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. \n  - ![Load-each-user-database](Photos/Load-each-user-database.png)\n  - ![Load-each-user-database](Photos/Load-each-user-database_2.png)\n\n### Handling unexpected input and wrong confirmation\n  - ![Wrong_LogIn](Photos/Wrong_LogIn.png)\n  - ![Handling-unexpected_input_1](Photos/Handling-unexpected_input_1.png)\n  - ![Handling-unexpected_input_2](Photos//Handling-unexpected_input_2.png)\n  - ![Handling-wrong-confirmation](Photos/Handling-wrong-confirmation.png)\n  \n\n## Installation \n### Prerequisites\n- .NET 6.0 SDK or later\n- GIT\n### Steps\n1. Clone the repository\n```powershell \ngit clone https://github.com/yourusername/PasswordManager.git\ncd PasswordManager\n```\n2. Restore dependencies:\n```powershell\nRestore dependencies:\n```\n3. Run the application:\n```powershell\ndotnet run\n```\n\n\n## Contributing\nWe welcome contributions! Please follow these guidelines:\n\n1. Fork the repository\n2. Create a feature branch:\n```powershell\ngit checkout -b feature/your-feature-name\n```\n3. Implement your changes following existing patterns:\n- Use interface-driven design\n- Maintain separation between Core/UI/Database layers\n4. Test thoroughly\n5. Submit a Pull Request with description of changes\n-----------------------------------------------------","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmed-gaper%2Fpassword-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmed-gaper%2Fpassword-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmed-gaper%2Fpassword-manager/lists"}