The HashGate Authentication System is a secure, file-based user authentication program written in C++. It provides a simple yet effective way to manage user authentication with the following features:
- 🔑 User Login with SHA-256 hashed passwords.
- 👤 User Creation (requires root password verification).
- 🗑️ User Deletion (requires root password verification and confirmation).
- 🔒 Secure Root Password Setup on the first run.
- 🙈 Hidden Password Input for security during login and root password prompts.
This system ensures that user credentials are stored securely using hashing techniques and provides a basic but effective local authentication mechanism.
🚀 Note: This program is just a part of a bigger project I am working on. It serves as the front-end login system for a larger application currently under development.
- SHA-256 Hashing: Ensures passwords are stored securely.
- Root Password Protection: Required for adding and deleting users.
- Hidden Password Input: Conceals passwords while typing.
- File-Based Storage: User credentials are stored safely in local files (
users.dat
androot.dat
).
- First Run Setup: The system prompts the user to set a root password (this cannot be changed later).
- Users can:
- 🔑 Login with a username and password.
- ➕ Create a new user (requires root password verification).
- 🗑️ Delete a user (requires root password verification and confirmation).
- ❌ Exit the program.
- Passwords are stored securely as SHA-256 hashes to prevent unauthorized access.
- C++ compiler (e.g.,
g++
for Linux or MinGW for Windows) - OpenSSL library for SHA-256 hashing
g++ authentication.cpp -o hashgate -lssl -lcrypto
g++ authentication.cpp -o hashgate.exe -lssl -lcrypto
- Run the compiled executable:
./hashgate # Linux hashgate.exe # Windows
- First Run:
- The program will prompt for a root password.
- This password is required to create or delete users.
- 🔑 Login:
- Enter a valid username and password.
- If correct, access is granted; otherwise, an error is shown.
- ➕ Create a User:
- Enter the root password.
- Provide a new username and password.
- 🗑️ Delete a User:
- Enter the root password.
- Provide the username to delete.
- Confirm deletion.
- ❌ Exit the program by selecting option
4
.
- Root Password Security: The root password is stored as a SHA-256 hash and cannot be changed after setup.
- User Passwords: Stored securely using SHA-256 hashing.
- File Storage:
root.dat
: Contains the hashed root password.users.dat
: Stores user credentials inusername:hashed_password
format.
This project is open-source and free to use under the MIT License.
Contributions and suggestions are welcome! 🚀
I am open to collaboration if you have great ideas to implement! Feel free to open issues, submit pull requests, or discuss enhancements. Let's make HashGate Authentication System even better together! 💡🔧