Professional Documents
Culture Documents
PBL REPORT (GRP 5) Updated
PBL REPORT (GRP 5) Updated
By
Engineering Department
Smt. Kashibai Navale College of Engineering
44/1, Vadgaon (Bk), Off Sinhgad
Road, Pune - 411041.
Smt. KASHIBAI NAVALE COLLEGE OF
ENGINEERING, PUNE-41
S. No. 44/1, Vadgaon (Bk), Off Sinhgad Road, Pune – 411 041.
Certificate
This is to certify that, following students,
has completed all the Term Work & Practical Work in the subject Project Based Learning
(PBL) satisfactorily in the department of First Year Engineering as prescribed by Savitribai
Phule Pune University, in the academic year 2022 - 2023
This report presents a simple yet effective password manager implemented in Python. The
password manager allows users to securely add, retrieve, list, and delete passwords for
various websites. It incorporates a combination of user input and randomly generated
passwords to create strong and unique credentials. The passwords are stored in a text file
with encryption to ensure data security. The manager includes basic authentication
mechanisms, requiring users to verify their identity before accessing stored passwords. A
user-friendly command-line interface simplifies the interaction with the password manager.
The program provides convenience by offering suggested password generation while
maintaining a high level of security. The password manager's functionality includes adding
passwords with customizable lengths, retrieving and displaying decrypted credentials, listing
stored passwords, and deleting specific entries. Overall, this Python-based password manager
offers an efficient and secure solution for password management, promoting strong
passwords and safeguarding user information.
1. INTRODUCTION
Introduction:
In today's digital world, we rely heavily on online platforms and services that require
passwords to protect our personal information. However, managing multiple passwords can
be overwhelming and challenging. To address this problem, we have developed a password
manager using Python, a popular programming language known for its simplicity and
versatility.
Our Python password manager project aims to simplify the task of managing passwords for
various websites. We understand the importance of using strong and unique passwords, so
our password manager provides a secure and convenient solution. By leveraging encryption
techniques, generating random passwords, and offering user-friendly interfaces, we aim to
enhance both the security and usability of password management.
The main goal of our password manager is to make password management easier and more
efficient. It eliminates the need to remember and manually enter complex passwords by
automating the process. Instead, users have the option to generate strong and random
passwords of a specific length, ensuring the creation of robust credentials for each website
they use.
To ensure the security of stored passwords, our password manager uses encryption. We
employ the Fernet encryption scheme provided by the cryptography library, which encrypts
passwords before storing them. This adds an extra layer of protection, making it extremely
difficult for attackers to access the sensitive information even if they gain unauthorized
access to the password manager.
Our password manager features a user-friendly command-line interface (CLI). This means
that users can interact with the password manager through simple text commands, making it
accessible to users of all technical backgrounds. The CLI strikes a balance between
simplicity and functionality, providing a seamless experience for users to manage their
passwords efficiently.
The password manager offers four main functions: adding passwords, retrieving passwords,
listing stored passwords, and deleting passwords. When adding a password, users can input
the website, username, and either manually enter a password or generate a suggested one.
The entered credentials are encrypted and securely stored in a text file. When retrieving a
password, users need to authenticate themselves, after which the password manager decrypts
and displays the requested credentials. The list passwords function allows users to view all
the stored website credentials, while the delete password function enables the removal of
passwords for specific websites.
Throughout this project report, we will provide a detailed analysis of the code
implementation, functionality, and security measures of our Python password manager. We
will explain how encryption works, the logic behind suggested password generation, and the
techniques used to handle user input securely. We will also discuss the methods employed to
store and manage password data securely.
To ensure the reliability and security of our password manager, we have conducted thorough
testing and validation. We have performed unit testing and integration testing to verify the
code's functionality. Additionally, we have evaluated the performance and usability of the
password manager, identifying areas for improvement and future enhancements.
In conclusion, our Python password manager project offers a user-friendly and secure
solution for managing website passwords. By incorporating encryption, random password
generation, and an intuitive interface, we aim to empower users to protect their sensitive
information effectively. The subsequent sections of this report will provide further insights
into the code implementation, security measures, and future possibilities for enhancing the
password manager's functionality. Let's explore the inner workings of our password manager
in detail.
2. LITERATURE SURVEY
2. Password Generation:
The generate_password function generates a random password of a specified length.
It creates a string of characters by combining lowercase letters, uppercase letters, digits, and
punctuation marks.
It uses the random.choice function to randomly select characters from the string, repeating
the process for the desired password length.
The generated password is returned.
4. Adding a Password:
The add_password function allows the user to add a new password for a website.
It prompts the user to enter the website name, username, and password.
If the user chooses to have a suggested password, the function calls the generate_password
function to generate a random password and displays it to the user.
The username and password are encrypted using the encrypt_data function.
The encrypted username and password are stored in the passwords dictionary, with the
website name as the key.
The website name, encrypted username, and encrypted password are also appended to a file
named "passwords.txt" for persistent storage.
A success message is displayed.
5. Retrieving a Password:
The get_password function allows the user to retrieve a stored password for a website.
The user is asked to say "please" as a security measure.
If the user says "please," they are prompted to enter the website name.
If the website name exists in the passwords dictionary, the corresponding encrypted
username and password are retrieved.
The encrypted data is decrypted using the decrypt_data function.
The decrypted username and password are displayed to the user.
If the website name is not found, an appropriate message is displayed.
6. Listing Passwords:
The list_passwords function reads the contents of the "passwords.txt" file and displays the
website names for which passwords are stored.
For each line in the file, the website name, encrypted username, and encrypted password are
extracted.
The encrypted data is decrypted using the decrypt_data function.
The decrypted username and password are temporarily stored in the passwords dictionary for
retrieval.
The website name is displayed to the user.
7. Deleting a Password:
The delete_password function allows the user to delete a stored password for a website.
The user is prompted to enter the website name.
If the website name exists in the passwords dictionary, the corresponding entry is deleted.
The contents of the "passwords.txt" file are read, excluding the line containing the website
name to
The code keeps running in a loop, showing you a menu of options. You can choose what you
want to do: add a password, get a password, list passwords, delete a password, or close the
program.
The system works by allowing users to add passwords for websites, generate suggested
passwords if needed, and store them securely. Users can retrieve passwords by providing
the website name and confirming their access. The system also provides a list of stored
passwords and allows users to delete them if necessary.
By using encryption techniques, the project ensures that passwords are stored safely and
can't be easily accessed by unauthorized individuals. This provides users with a convenient
and secure way to manage their passwords and keep their online accounts protected.
6. COSTING OF PROJECT
Qty./assembly Cost
Sr. No. Name of component
(In Nos/wt/litre) (In Rs.)
4. Based on the above information, can you initiate a start-up in the future?
Certainly! Considering the demand for online security and the need for efficient
password management, starting a company based on this project is a promising
opportunity. With the right marketing and user-friendly features, the start-up can
attract customers and succeed in the market.
ANNEXURE I
(paste here 4 photos of 1. your project 2.you are working with the projects
etc.)
REFERENCES
Reference books:
[1] "Python Projects for Beginners" by Connor P. Milliken
[2] "Python for Everybody: Exploring Data in Python 3" by Charles SeveranceNote – 1.
Each
Reference websites:
[3] https://www.python.org/
[4] https://www.geeksforgeeks.org/
[5] https://www.wikipedia.org/
[6] https://github.com/