Skip to content

A secure password manager application to safely store, modify and remove an end-user’s data and personal information.

Notifications You must be signed in to change notification settings

martinmathurine/Secure-Password-Manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Secure-Password-Manager

Application Security Through Hashing Technologies Developed with Java

Introduction

This secure password manager application, developed in Java, enables safe storage, modification, and removal of user credentials. The system employs hash maps to manage data securely and integrates authentication mechanisms to restrict access to authorised users only. By pairing unique keys with corresponding values, hash maps enable efficient credential retrieval while enhancing protection against unauthorised access.

Key features include a secure login system and encryption mechanisms that safeguard passwords. The application demonstrates practical knowledge of hashing algorithms, conditional logic for access control, and use of BigInteger for cryptographic operations.

Requirements

The goal was to build a Java-based secure application to manage usernames and passwords, encrypted using SHA-256. Only a master user can add, edit, or remove stored credentials. Developed as part of a group project, this system ensures stored data remains protected in the event of a breach. The encrypted data is stored in external files under master user control.

Design Considerations and Block Diagram

The application flow begins with the master user logging in with a predefined username and password. Once authenticated, the user may add, modify, or delete entries. Passwords and master credentials are hashed and stored in separate files.

Development Methodology

The system follows a menu-driven design for clarity and ease of use. Simplicity was prioritised to ensure accessibility for users with varying technical backgrounds. Development was conducted in IntelliJ IDEA.

Functionality

This program utilises a hash map to manage the master user's credentials, storing them in the add user ID hash map. This hash map pairs usernames with passwords for easy retrieval. The main method presents a menu-based interface, offering options for adding, updating, or deleting user entries.
  • Master User Authentication: The first method verifies the master user's credentials, allowing access to the main menu upon correct input. Incorrect entries result in program termination.

  • Main Menu: Displays available options for managing user entries.

  • Add User ID: Allows storing user entries in the add user ID hash map.

  • Delete User ID: Removes user entries if they exist in the hash map.

  • Update User Password: Enables changing passwords for existing users.

  • Modify Master Password: Allows changing the master password.

  • Official Master Access: Validates access to perform operations based on selected options.

  • Hashing: Utilises the SHA-256 algorithm to securely hash passwords before storing them in the hash map. Encrypted passwords are then written to files for storage.

The process involves looping through the add user ID hash map to encrypt and store passwords. Exception handling ensures program continuity, even in case of errors during encryption or file writing. The same process applies to encrypting the master password, with separate file and hash map names for distinction.

Security Features

I implemented SHA-256 to encrypt the passwords for the master user and students. SHA-256 is efficient enough to uniquely hash encrypted data and safely secure it such as account-specific end-user passwords and usernames. With no known security weaknesses, it ensures high-level data protection, making it the preferred choice for cryptography.

Usability Demo

Application.usability.demo.video.3.mp4

Concluding Reflections

Java was selected for its balance of readability, reliability, and built-in security features. This project underscored the importance of secure coding practices at both the application and network layers. Implementing cryptographic standards like SHA-256 reflects a strong foundation in secure software development and application-layer security.

References

About

A secure password manager application to safely store, modify and remove an end-user’s data and personal information.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages