You are on page 1of 14

PASSWORD MANAGER

A Report submitted in partial fulfillment of the requirements to complete Term Work


& Practical work of Project Based Learning (PBL) in the department of

ENGINEERING SCIENCES DEPARTMENT


As prescribed by

SAVITRIBAI PHULE PUNE UNIVERSITY

By

Honalikar Omkar Sanjay PRN No: 72238723H


Mankare Shubham Hanmant PRN No: 72238934F
Kauthale Snehal Subhash PRN No: 72238821
Gadhave Tanmayee Satish PRN No: 72238655K
Tekale Bhagyashri Navnath PRN No: 72239282G

Under the supervision of

MR. FAYAZ HUSAIN KHARADI

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.

Department of First Year Engineering

Certificate
This is to certify that, following students,

1. Honalikar Omkar Sanjay Roll No: FI1110


2. Mankare Shubham Hanmant Roll No: FI1102
3. Kauthale Snehal Subhash Roll No: FI1117
4. Gadhave Tanmayee Satish Roll No: FI1137
5. Tekale Bhagyashri Navnath Roll No: FI1167

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

Faculty-in-charge Head of Department Principal


Date: / / _
ABSTRACT

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

A literature survey is a survey of source of specific topic. It provides an overview of current


knowledge, allowing you to identify method that can apply for your work. How to write
literature survey is given here. Read carefully given below and write the literature review
according to your topic.
Students are requested to download atleast 3-4 research paper. Sample literature review is
given as follows-
Ajit S. Gaunekar, Gary P. Widdowson, Narasimalu Srikanth, Wang Guangneng paper states
that Programmable Focusing Mechanism (PFM) is one of the application of flexure bearing
in which one is moving lens and one is fixed lens and the position of moving lens is detected
by LVDT.[1].
Yingbai XIE, Xiuzhi HUANG, Liangming GUI, Zhouxuan XU paper states that a linear
compressor is a piston-type compressor in which the piston is driven by a linear motor, rather
than by a rotary motor coupled to a conversion mechanism as in a conventional reciprocating
compressor. [2]
H.P. Luo, B. Zhang, Z.X. Zhou, paper states an important and challenging research topic has
been to design m-machines or m-devices that are capable of micromanipulation, precision
motion devices and 3-D mmanufacturing at the nanometric accuracy level. Hence, this study
proposes a new concept of bearings i.e. flexural bearings or suspension systems [3].
3. FIGURE / CIRCUIT DIAGRAM / FLOW CHART /
PHOTOGRAPHS / BLOCK DIAGRAM
(Whichever is applicable, keep it and delete other in this title, delete all red colour
content.)

ABCDEFGNFKJSDNKCMZXM MXC KJSDK ABCDEFGNFKJ SDNKCMZXM MXC


KJSDK ABCDEFGNFKJSDNKCMZXM MXC KJSDK ABCDEFGNFKJ SDNKCMZXM
MXC KJSDKASASD
ABCDEFGNFKJSDNKCMZXM MXC KJSDK ABCDEFGNFKJ SDNKCMZXM MXC
KJSDK ABCDEFGNFKJSDNKCMZXM MXC KJSDK ABCDEFGNFKJ SDNKCMZXM
MXC KJSDKASASD
ABCDEFGNFKJSDNKCMZXM MXC KJSDK ABCDEFGNFKJ SDNKCMZXM MXC
KJSDK ABCDEFGNFKJSDNKCMZXM MXC KJSDK ABCDEFGNFKJ SDNKCMZXM
MXC KJSDKASASD
4. WORKING
1. Initialization:
The code starts by importing the necessary modules: random for generating random
characters, string for accessing sets of characters, and cryptography for encryption and
decryption.
It initializes an empty dictionary called passwords to store website passwords.
It generates a secret encryption key using the Fernet encryption algorithm.

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.

3. Data Encryption and Decryption:


The encrypt_data function takes a string of data and encrypts it using the encryption key.
It converts the string to bytes, encrypts it using the cipher_suite.encrypt function, and then
converts the encrypted bytes back to a string.
The encrypted data is returned.
The decrypt_data function takes an encrypted string and decrypts it using the encryption key.
It converts the string to bytes, decrypts it using the cipher_suite.decrypt function, and then
converts the decrypted bytes back to a string.
The decrypted data 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.

In this way the above code works.


5. CONCLUSION
In conclusion, the project is a secure password management system that allows users to
store and retrieve passwords for different websites. It uses encryption to protect sensitive
information and ensures only authorized users can access the passwords.

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.)

Total Material cost (Rs.)

Labour charge (Rs.)

Total cost of project (Rs.)


7. MARKETABILTY OF THE PROJECT

1. Is your project beneficial to society?


Yes, the project benefits society by helping people protect their passwords and keep
their online accounts secure.

2. If yes, how does your project/idea benefit society?


The project provides a safe and convenient way for individuals and businesses to
manage their passwords. It reduces the risk of unauthorized access to personal
information and enhances online security for everyone.

3. Can you sell your project in the market?


Absolutely! The project can be sold as a valuable password management solution to
individuals, businesses, and organizations looking for an effective way to safeguard
their passwords and sensitive data.

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/

You might also like