ForgetNot is a terminal-based password manager written in C that allows users to generate, store, view, edit, and delete passwords using binary file storage.
The project focuses on low-level systems concepts such as memory management, binary I/O, and modular program design.
-
π Password Generation
- User-defined length
- Optional symbols
- Randomized using
rand()seeded with system time
-
πΎ Binary File Storage
- Passwords stored securely in a binary file (
passwords.db) - Uses fixed-size
structrecords for consistency and safety
- Passwords stored securely in a binary file (
-
π View Saved Passwords
- Lists all saved services
- View service, username, and password
-
βοΈ Edit Passwords
- Edit service name, username, password, or all fields
- Option to generate a new password during edit
-
π Delete Passwords
- Safely remove passwords with confirmation
-
π§ Modular Design
- Separate source files for each feature
- Static library (
libpass.a) built with Makefile
- C (C99)
- Dynamic memory allocation (
malloc,realloc,free) - Binary file I/O (
fread,fwrite) - Struct-based data modeling
- Static libraries
- Makefile-based build system
- Defensive programming & input validation
ForgetNot/ β βββ src/ β βββ main.c β βββ generatePassword.c β βββ savePassword.c β βββ viewPassword.c β βββ editPassword.c β βββ deletePassword.c β βββ header.h β βββ Makefile βββ README.md
- GCC (MinGW on Windows)
mingw32-make
mingw32-make.\bin\password.exeMoby Computer Science student Built as a systems programming & learning project