A lightweight, console-based password manager written entirely in C. It secures your account credentials locally using salted SHA-256 cryptographic hashing and a master password.
- 🛡️ High Security: Implements a custom SHA-256 hashing algorithm from scratch. Passwords are never stored in plain text.
- 🧂 Cryptographic Salting: Generates random 16-byte salts for every single entry to prevent rainbow table attacks.
- 🔑 Master Password Protection: The entire vault is locked behind a master password. You cannot read, write, or delete without verifying the master key.
- 💾 Dynamic Local Storage: Automatically saves and manages data locally using binary files (
master.datandaccounts.dat). - 🛠️ Full CRUD Operations: Easily Add, List, Search, and Delete your saved accounts.
You have two ways to run this password manager:
If you already have the compiled .exe file:
- Open your terminal or command prompt.
- Run the executable:
(Note: The app will create
passman.exe
master.datandaccounts.datin the same folder to save your details.)
If you want to compile the C code yourself, ensure you have a C compiler (like gcc) installed.
- Clone the repository:
git clone https://github.com/xedi1/PassManager-Accounts-With-Security-Hash-SHA256.git cd PassManager-Accounts-With-Security-Hash-SHA256 - Compile the code:
gcc src.c -o src
- Run the program:
./src
This project demonstrates low-level memory and file management in C, alongside cryptographic principles:
- File I/O: Uses
freadandfwritefor reading/writing structured binary data to.datfiles. - Memory Management: Utilizes dynamic memory allocation (
malloc,calloc,realloc,free) to handle arbitrary lengths of account data safely. - Bitwise Operations: The SHA-256 implementation heavily relies on 32-bit and 64-bit bitwise shifts (
rotr,ch,maj) to generate secure hashes.
Developed with ❤️ by Hadi Gholipour. If you like this project, please give it a ⭐!
```




