Skip to content

Zabi-01/SecureUserCredentialManager

Repository files navigation

🛡️ SecurePass Manager

Java Version GUI Framework Security License

A secure, local, multi-user desktop credential manager built on Java Swing.

Key FeaturesSecurity & ImplementationApplication ShowcaseGetting StartedProject Structure


🔑 Key Features

👤 User Features

  • Double-Layer Authentication: Register & log in securely using local profiles.
  • Multi-Factor Authentication (MFA): Adds an extra 6-digit MFA code challenge for all user accounts.
  • Personal Password Vault:
    • Add Credentials: Log site names, usernames, passwords, and custom notes.
    • Interactive Search & View: Browse and manage your password entries in a structured list view.

🛡️ Admin Features

  • Secure Admin Access: Access the administrative console with master admin credentials (admin123 / MFA 123456).
  • User Monitoring: Audit registered users and view counts of their saved password entries.
  • Vault Inspection: View raw encoded vault strings directly from the admin dashboard.
  • System Log Viewer: Audit system activity logs (system.log) in real-time.

🔒 Security & Implementation Details

1. 🔑 Base64 Obfuscation

Rather than storing credentials in plaintext, SecurePass Manager implements custom encoding/decoding using java.util.Base64.

  • Password Security: The master password in the user's profile.dat and all saved password entries inside vault.dat are encoded when saved, and decoded only when authentication or visualization requires it.
  • Implementation (Encoder.java):
    public class Encoder {
        public static String encode(String s) {
            return s == null ? "" : Base64.getEncoder().encodeToString(s.getBytes());
        }
    
        public static String decode(String s) {
            if (s == null || s.isEmpty()) return "";
            try {
                return new String(Base64.getDecoder().decode(s));
            } catch (Exception e) {
                return "[DECODE ERROR]";
            }
        }
    }

2. 🛡️ Multi-Factor Authentication (MFA)

To prevent unauthorized entry even if the master password is leaked, a local MFA flow is implemented:

  • Code Generation: Upon account registration (SignupScreen.java), a random 6-digit code is dynamically generated:
    String mfa = String.format("%06d", (int)(Math.random() * 1000000));
  • Storage & Display: The user is shown their unique MFA code once upon sign-up, and it is stored securely on the third line of their local profile.dat file.
  • Verification: At login (LoginScreen.java), the user is prompted to enter their MFA code, which is validated against the stored value:
    String input = JOptionPane.showInputDialog("Enter your 6-digit MFA code:");
    if (input == null || !input.equals(mfaCode)) {
        JOptionPane.showMessageDialog(panel, "Invalid MFA Code!");
        return;
    }

📸 Application Showcase

SecurePass Manager UI Showcase

🛠️ Getting Started

Prerequisites

  • Java Development Kit (JDK) 8 or higher installed.

Compilation and Run Instructions

  1. Clone the repository:

    git clone https://github.com/Zabi-01/SecureUserCredentialManager.git
    cd SecureUserCredentialManager
  2. Compile the Java sources:

    javac *.java
  3. Launch the application:

    java SecurePassManager

📂 Project Structure

SecureUserCredentialManager/
├── 📁 screenshots/          # UI Showcase assets
│   └── gui_showcase.png     # Application screenshot
├── 📁 users/                # [Local Only] Encrypted user profile and vault directories (git-ignored)
├── 📁 logs/                 # [Local Only] Application logs directory (git-ignored)
├── 📄 *.java                # Application source code
└── 📄 README.md             # Project documentation

Made with ❤️ for OOP Semester Project

About

SecurePass Manager is a local multi-user desktop credential manager developed as an Object-Oriented Programming semester project using Java Swing. It secures user accounts using local Base64 encryption for credential storage alongside a mandatory six-digit Multi-Factor Authentication challenge.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages