PasswordManagerProject
PasswordManagerProject
On
Password Manager
In partial fulfillment of the requirements for the Bachelor of Science in Computer
Science and Information Technology
Submitted to:
Department of Computer Science and Information Technology
Swastik College
Submitted By
Kumar Basnet (T.U Exam Roll No:26862/077)
Muskan Rijal (T.U Exam Roll No:26863/077)
Pratikchya Katwal (T.U Exam Roll No:26865/077)
January 2025
SUPERVISOR RECOMMENDATION
I hereby recommend that this project prepared under my supervision by Kumar Basnet,
Muskan Rijal and Pratikchya Katwal entitled “PASSWORD MANAGER” in partial
fulfillment of the requirements for the degree of Bachelor of Science in Computer
Science and Information Technology be processed for the evaluation. They possess
excellent communication skills and is always willing to go above and beyond in fulfilling
their responsibilities. They consistently met or exceeded expectations on every task
assigned to them.
......................................
Swastik College
2
LETTER OF APPROVAL
............................................
Supervisor
……………………………
External Examiner
……………………………
Coordinator
Swastik college
Chardobato, Bhaktapur
3
ACKNOWLEDGEMENT
We would like to express our sincere gratitude to Ms. Sristi Khatiwada, our program
coordinator and Mr. Binod Budathoki, our project supervisor for their invaluable
guidance, unwavering support and mentorship throughout the duration of project. Their
valuable and timely suggestions at crucial stages, along with their constant
encouragement have made it possible for us to accomplish this work. Lastly, we extend
our heartfelt thanks to everyone who has contributed to this project, directly or indirectly,
and helped in its completion.
Thanking you,
Kumar Basnet
Muskan Rijal
Pratikchya Katwal
4
ABSTRACT
Keywords: Tailwind CSS, Node.js, Next.js, RSA Encryption & Decryption, Password
Hashing, MongoDB
5
TABLE OF CONTENTS
SUPERVISOR RECOMMENDATION..............................................................................ii
LETTER OF APPROVAL..................................................................................................iii
ACKNOWLEDGEMENT..................................................................................................iv
ABSTRACT.........................................................................................................................v
LIST OF FIGURES..........................................................................................................viii
LIST OF TABLES..............................................................................................................ix
LIST OF ABBREVIATIONS...............................................................................................x
Chapter 1: Introduction........................................................................................................1
1.1 Introduction................................................................................................................1
1.3 Objectives...................................................................................................................2
6
3.2 Feasibility Analysis....................................................................................................8
3.2.1 Economic Feasibility...........................................................................................8
3.2.2 Technical Feasibility...........................................................................................8
3.2.3 Operational Feasibility........................................................................................8
3.2.4 Schedule Feasibility............................................................................................8
4.1 ER Diagram..............................................................................................................10
5.1 Implementation........................................................................................................12
5.1.1. Tool Used.........................................................................................................12
5.1.2. Implementation Details....................................................................................12
5.1.3 Description of Algorithms.................................................................................14
5.2 Testing......................................................................................................................16
5.2.1 Unit Testing.......................................................................................................16
5.2.2 System Testing..................................................................................................19
6.1 Conclusion................................................................................................................22
Appendix............................................................................................................................24
REFERENCES...................................................................................................................31
7
LIST OF FIGURES
8
LIST OF TABLES
9
LIST OF ABBREVIATIONS
10
Chapter 1: Introduction
1.1 Introduction
In today’s digital age, managing and safeguarding online credentials has become a critical
necessity. With the increasing number of online platforms and services requiring unique
and strong passwords, users often face challenges in remembering, organizing, and
securing their credentials. The Password Manager project is designed to address these
challenges by providing a comprehensive solution for secure and efficient password
management.
Password Manager is a web-based application that enables users to securely store and
manage their passwords and other sensitive information in an encrypted environment. The
system is built using modern technologies such as React, Tailwind CSS, Node.js, Next.js,
and MongoDB, ensuring a responsive, scalable, and high-performance platform. This
project not only focuses on the secure storage of credentials but also enhances the user
experience by offering features like password strength analysis, automated generation of
strong passwords, and expiration reminders to promote safer password practices.
Administrators have tools to manage user accounts, enforce access policies, and monitor
system security, ensuring the platform remains secure and reliable. By combining cutting-
edge technologies and robust security protocols, Password Manager provides an
indispensable solution for managing digital identities in an increasingly interconnected
world.
1
1.2 Problem Statement
With the rapid increase in digital platforms, users are required to manage numerous
accounts, each demanding strong and unique passwords. Remembering, organizing, and
securely storing these credentials has become a significant challenge. Many users resort
to unsafe practices such as reusing passwords or storing them insecurely, leading to
increased vulnerability to data breaches, unauthorized access, and identity theft.
The lack of a centralized, secure, and user-friendly solution for password management
poses a critical risk to digital security. This project aims to address these challenges by
developing Secure Vault, a robust Password Manager that ensures the secure storage,
retrieval, and management of passwords, while promoting better password practices and
safeguarding users’ sensitive information.
1.3 Objectives
2
1.4 Scope and Limitations
1.4.1 Scope
1.4.2 Limitation
i. If a user forgets the master password and no recovery options are in place, access
to stored credentials may be permanently lost.
ii. Weak master passwords or insecure practices, such as sharing credentials or
leaving sessions open, can compromise security.
iii. Offline access to credentials may require additional configurations, potentially
exposing a portion of the data to less secure local storage.
3
Fig. 1. Agile Development Methodology
Chapter 1 is the overview of the project including the introduction, problem statement,
objectives, scope, limitations, and development methodology.
Chapter 2 focuses on the background study and literature review related to the project for
reference in project development.
4
Chapter 2: Background Study and Literature Review
A Password Manager is a critical tool for maintaining security and privacy in the digital
age. With the increasing number of online services and accounts, managing passwords
securely has become a significant challenge. Password managers offer a solution by
securely storing, generating, and organizing passwords in a centralized location, making it
easier for users to manage and access their accounts. Traditionally, users often relied on
weak, repetitive passwords or wrote them down in insecure locations, making them
vulnerable to cyber-attacks like data breaches, phishing, and brute force attacks. Password
managers solve these problems by encrypting passwords, ensuring that even if data is
compromised, sensitive information remains protected.
The development of a password manager requires a strong focus on security, ease of use,
and scalability. Modern password managers use encryption algorithms
like AES (Advanced Encryption Standard) and RSA (Rivest-Shamir-Adleman) to protect
passwords both at rest and during transmission. They often employ additional features
like two-factor authentication (2FA), biometric security (e.g., fingerprint or face
recognition), and password generation tools to enhance security further. Password
managers have gained popularity due to their ability to store and manage a wide range of
sensitive data beyond passwords, including credit card details, personal identification
numbers (PINs), and secure notes. By automating the generation and storage of complex
passwords, password managers make it easier for users to adhere to best practices for
online security, such as using unique, strong passwords for every account.
5
paramount in elevating the security landscape of the digital era, they can often pose
inherent
challenges, especially for the non-tech-savvy demographic. The study not only
emphasizes
the significance of password managers but also underscores the dire need for making
these
tools more intuitive and user-friendly, bridging the gap between robust security and
seamless usability. [1].
An Empirical Study of Password Manager Use by Chiasson and van Oorschot. Chiasson
and van Oorschot provide a candid snapshot of the contemporary state of password
manager usage. Venturing beyond the theoretical, they unveil how users interact with
these
tools in real-world scenarios. Their results indicate a dichotomy: on one hand, password
managers prove instrumental in upholding robust password hygiene; on the other, users
grapple with some of the more intricate features, such as secure password sharing or
efficient recovery processes. This research serves as a clarion call for developers and
designers to prioritize user experience as much as security. They found that while
managers
aid in maintaining stronger passwords, users often face obstacles in advance [2].
Rethinking Security of Web-Based System Applications: The Password Manager Case by
Karole et al. Karole and his peers shed light on a pivotal concern: the vulnerabilities
lurking
within web-based password managers. Through exhaustive research, the team unveils
weak
points in even the most renowned tools, painting a vivid picture of the ever-evolving
cybersecurity landscape. But this isn't just a critique. Their research lays the groundwork,
offering a blueprint for the next generation of developers, ensuring they build password
managers that aren't just secure on paper, but in practical scenarios too. Their findings
reveal several weak points in popular tools, suggesting that even secure systems have
room
for improvement. The research provides a framework for developers to build more
resilient
6
password management systems. For developers and cybersecurity experts, this study is
both a cautionary tale and a beacon, highlighting the path forward in an ever-evolving
digital landscape [3].
Password Managers: Attacks and Defenses" by Silver et al. Silver's comprehensive
exploration of password manager attacks offers invaluable insights for anyone vested in
the
realm of digital security. By meticulously dissecting various attack vectors, Silver
provides
not just a diagnosis but also prescribes remedies, paving the path for fortified defenses. As
cyber threats continue to multiply and morph, this research stands as a testament to the
significance of staying one step ahead, always prepared for the next challenge. By
understanding the nature of these attacks, developers can devise robust defenses. For
every challenge uncovered, Silver's study provides a countermeasure, underscoring the
proactive and adaptive stance the digital world must adopt to ensure user data remains
sacrosanct. [4].
i. The system should allow users to create a new account by providing a unique
username, email, and password.
ii. The system should allow users to log in with their username (or email) and
password.
iii. If the credentials are correct, the user should be authenticated and allowed to
access the password manager.
iv. Users should be able to securely store their passwords for different websites or
applications in the password manager.
v. The system should provide an option to view stored passwords.
7
3.1.2 Non-Functional Requirements
A non-functional requirement describes how the system performs a certain function. Non-
functional requirements generally specify the system’s quality attributes or
characteristics. The non-functional requirements in contents to project are as follows:
i. The system must be designed with user-friendly and easy to use by the user so that
the user can perform their job nicely. It must have a clear instruction to guide user.
ii. The application should support a light and dark mode switcher, allowing users to
toggle between themes based on their preference.
All the free resources are available to do the project thus further expenses is not required.
The necessary technologies and expertise, including Next.js and RSA, are available to
successfully implement in the project.
8
3.2.3 Operational Feasibility
The project aligns with user requirements and can be smoothly integrated into existing
systems.
The project can be completed within the allotted time frame according to the proposed
Gantt chart.
9
3.3.2 DFD Level 1
10
Fig. 6. ER Diagram of Password Manager
11
Fig. 7. Flow chart diagram of Password Manager
5.1 Implementation
Visual Studio Code: Visual Studio Code is used in password manager because it is a
lightweight but powerful source code editor which runs on Window, Linux, macOS. It
comes with built-in support for JavaScript, TypeScript and Node. The delightfully
frictionless edit-build-debug cycle means less time fiddling with your environment, and
more time executing on your ideas. It aims to provide just the tools a developer needs for
a quick code-build-debug cycle and leaves more complex workflows to fuller featured
IDEs,such as Visual Studio IDE.
HTML, CSS and Tailwind: HTML primarily used in password manager to design the
UI
12
and provide support to tailwind elements by providing containers for tailwind. CSS used
to
add additional detailed design to the portal and Bootstrap used to overall design the portal
by extending tags from existing library.
Next js: Next js is used in password manager to execute server-side code using
JavaScript.
It's known for its efficiency, scalability, and non-blocking I/O capabilities.
2. Add User
13
The user can add other user and assign them role after entering into the system.
Algorithm:
Start
Enter Username, Password and Confirmation Password {
If (username already exists in database) {
Display error message
} Else If (Password does not fulfill criteria) {
Display error message
} Else If (password and confirmation password do not match) {
Display error message
} Else
User created message.
END
3. Edit Password
Algorithm:
Start: The algorithm begins.
Select Password to Edit: The user chooses the password entry they wish to modify.
If (No Changes Made): The algorithm checks if any changes have been made to the
password.
Direct to View Page: If no changes are detected, the algorithm takes no further action and
directs the user to the view page. This step prevents unnecessary updates when the
password remains the same.
Else: If changes have been made, the algorithm proceeds.
Update Password: It updates the selected password entry in the database to reflect the
changes made by the user.
END: The algorithm concludes.
4. Generate Password
Algorithm:
Start: The algorithm begins.
14
Specify Password Criteria: The user defines the criteria for the password they want to
generate, including length and character types (uppercase, lowercase, numbers, symbols).
Generate Password: The algorithm generates a random password based on the specified
criteria. It ensures the password meets security standards, including complexity and
randomness.
Display Generated Password: The generated password is displayed to the user for review.
END: The algorithm concludes.
Encryption:
c = me mod n
Decryption:
16
m = cd mod n
5.2 Testing
17
Password, but an invalid
email.
4. Submit the form.
18
3. Enter valid Name,
Password and email.
4. Submit the form.
5. Go to the Password
Generator section.
Table 8. UI test
19
and dark mode. selected mode.
3. Check the UI for
consistency in both
modes.
20
ST04 Add Password 1. Open the app. A message should
2. Go to the "Login" page. display: “Password
3. Enter valid Name, Password added successfully"
and email.
4. Submit the form.
5. Go to the Add password
section and add credentials.
ST05 Password 1. Open the app. Random password
Generator 2. Go to the "Login" page. should be generated.
3. Enter valid Name, Password
and email.
4. Submit the form.
5. Go to the Password
Generator section.
ST06 Password 1. Open the app. A message should be
Analyzer 2. Go to the "Login" page. displayed according to
3. Enter valid Name, Password password type."
and email. as “Too weak”,
4. Submit the form. “Medium”, “Strong”
5. Go to the Password Analyzer
section.
ST07 Encrypt and 1. Use the private key which The password should be
decrypt was downloaded in download visible.
password folder to decrypt password.
6.1 Conclusion
The Password Manager project successfully addresses the critical need for secure and
efficient password management in today's digital age. By providing a user-friendly
22
platform that enables users to store passwords securely, generate strong and unique
passwords, and analyze password complexity, the project enhances both convenience and
security for its users.
This project lays a strong foundation for protecting user credentials in an increasingly
interconnected world. Future enhancements could include multi-factor authentication,
secure sharing of credentials, and integration with browser extensions to further
streamline usability and security. Overall, this password manager is a valuable tool that
promotes better cybersecurity practices among its users.
To further enhance the capabilities and usability of the password manager, the following
recommendations can be considered for future development:
Appendix
24
Fig: Register Page of Password Manager
25
Fig: Adding new password with credentials
26
Fig: Password encrypted successfully
27
Fig: Password stored in MongoDB in encrypted form
28
Fig: Password strength analyzer result “weak”
29
Fig: Password strength analyzer result “Strong”
30
Fig: System in Light Mode
REFERENCES
31