Password Manager

                                                 

                                                RMI - BASED PASSWORD MANAGER SYSTEM


1.Remote interface – PasswordManager

import java.rmi.Remote;

import java.rmi.RemoteException;


public interface PasswordManager extends Remote {

    String addCredential(String website, String username, String password) throws RemoteException;

    String getPassword(String website) throws RemoteException;

}


2.Server-side implementation – PasswordManagerImpl

import java.rmi.server.UnicastRemoteObject;

import java.rmi.RemoteException;

import java.util.HashMap;

import java.util.Map;


public class PasswordManagerImpl extends UnicastRemoteObject implements PasswordManager {

    private Map<String, String> credentials;


    protected PasswordManagerImpl() throws RemoteException {

        super();

        credentials = new HashMap<>();

    }


    public String addCredential(String website, String username, String password) throws RemoteException {

        credentials.put(website, "Username: " + username + ", Password: " + password);

        return "Credential added for " + website;

    }


    public String getPassword(String website) throws RemoteException {

        if (credentials.containsKey(website)) {

            return "Stored for " + website + ": " + credentials.get(website);

        } else {

            return "No credentials found for " + website;

        }

    }

}


3.Server setup –PasswordManagerServer

import java.rmi.Naming;

import java.rmi.registry.LocateRegistry;


public class PasswordManagerServer {

    public static void main(String[] args) {

        try {

            LocateRegistry.createRegistry(1099); 

            PasswordManager manager = new PasswordManagerImpl();

            Naming.rebind("PasswordManager", manager);

            System.out.println("Password Manager Server is running...");

        } catch (Exception e) {

            System.out.println("Server Exception: " + e.getMessage());

        }

    }

}


4.Client to interact with the password manager – PasswordManagerClient

import java.rmi.Naming;


public class PasswordManagerClient {

    public static void main(String[] args) {

        try {

            PasswordManager manager = (PasswordManager) Naming.lookup("rmi://localhost/PasswordManager");


            System.out.println(manager.addCredential("github.com", "john_doe", "pass1234"));

            System.out.println(manager.addCredential("gmail.com", "john.doe", "emailpass"));


            System.out.println(manager.getPassword("github.com"));

            System.out.println(manager.getPassword("linkedin.com")); 

        } catch (Exception e) {

            System.out.println("Client Exception: " + e.getMessage());

        }

    }

}

5. Expected Output

Server








Client





Comments

Popular posts from this blog

Real Estate Managing Website

Matrix Division