0% found this document useful (0 votes)
111 views25 pages

Ip Project Report

Uploaded by

mistique707
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
111 views25 pages

Ip Project Report

Uploaded by

mistique707
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 25

A Project Report on

A Python-Based Password Generator and


Manager

SANSKRITI SCHOOL, PUNE


(BHUKUM CAMPUS)

For
CBSE 2023-24 Examination
[Informatics Practices (065)]

SUBMITTED BY:

Arjun Ghadge

Under the Guidance of:


Ms. Anagha Ware

1
Certificate
This is to certify that Arjun Ghadge of Class XII has successfully completed
his/her project in Informatics Practices (065) as prescribed by CBSE for the
year 2023-24.

Name of the student: Arjun Ghadge

Roll No.:

Class: XII

Name of the School: SANSKRITI SCHOOL, PUNE

Subject Teacher: Ms. ANAGHA WARE

Principal: Ms. DAMINI JOSHI

External Examiner:

2
Acknowledgment
I undertook this Project work, as a part of our XII-Informatics Practices course. I tried to apply
the best of my knowledge and experience, gained during the study and class work

experience. However, developing software systems is generally a relatively complex and

time-consuming process. It requires a systematic study, insight vision, and professional

approach during the design and development.

Moreover, the developer always feels the need, the help, and good wishes of the people near

you, who have considerable experience and ideas.

I would like to extend my sincere thanks and gratitude to my teacher Ms. Anagha Ware for

guiding me throughout the life cycle of Software Development.

I’m also very thankful to my Principal Ms. Damini Joshi for being a source of inspiration.

3
List Of Content
Topic Page Number

Introduction 5

Implementation 6

System and Software 7

Design and Development 8

Coding 11

Output 20

Future Enhancements 23

References 24

4
Introduction
● The "Password Assistant" is a Python program designed to assist users in
generating, storing, and managing secure passwords. In an era where
online security is of paramount importance, this tool aims to simplify the
process of maintaining strong and unique passwords for various accounts
and services.

● Purpose
The main objectives of this project are as follows:
o Generate high-security passwords.
o Store passwords in a structured manner.
o Provide options for editing and managing stored passwords.
o Enhance password security through randomness and complexity.

● Features
The key features of the "Password Assistant" program include:
o Randomized password generation using a combination of uppercase
letters, lowercase letters, digits, and special characters.
o Storage of passwords with associated labels in a structured
password vault.
o The ability to edit, remove, or search for stored passwords.
o An intuitive menu-based user interface.

5
Implementation
Program Flow
Password Generation
● The program generates high-security passwords by combining characters from

different character sets (uppercase, lowercase, digits, special characters).

Password Storage
● Passwords are stored in a structured format using a Pandas DataFrame and

saved to a CSV file named "Passwordvault.csv."

Password Management
● Users can edit the password vault by adding, removing, or searching for

passwords associated with specific labels.

● Users can also view the entire password vault.

User Interface
● The program offers a menu-based interface to choose from various operations.

Data Storage
● Password information is stored in a CSV file, "Passwordvault.csv," allowing for

easy import and export of password data.

6
System And Software
Hardware used:
● Ryzen 7 7700X- processor
● RTX 2070 Super- Graphics Card
● 32GB- RAM

Software used:
● Microsoft Windows® 11 as the Operating System.
● Visual Studio Code is the Main Development Software
● Python IDLE-3.11.4
● CSV File for Record Keeping.
● Google Docs for documentation.

Hardware Requirement-
● Latest Intel processor-based PC.
● 2 GB RAM and 4GB HDD space (for PDF and CSV files) are
desirable.
● Standard I/O devices like Keyboard and Mouse etc.

Software Requirement-
● Windows 2000/XP OS is desirable.
● Python IDLE 3.7 or higher should be installed.
● Python’s Pandas and Numpy should be installed.

7
System Design and Development
System Architecture
● The "Password Assistant" program is designed as a standalone command-line

application. It follows a modular architecture, with well-organized components

for password generation, storage, and management.

Modules and Components:


● Password Generation Module:

○ Responsible for generating high-security passwords using a combination

of characters from various character sets, including uppercase letters,

lowercase letters, digits, and special characters.

● Password Storage Module:

○ Manages the storage and retrieval of password data. It uses the Pandas

library to handle data as a DataFrame and saves it to a CSV file.

● User Interface Module:

○ Provides a menu-based user interface for interacting with the program.

Users can choose to generate passwords, manage the password vault, or

exit the program.

● Data Persistence Module:

○ Manages the loading and saving of the password vault to and from a CSV

file, ensuring that passwords are retained between program runs.

8
Password Generation
● The password generation module follows best practices for password security

by creating passwords that are randomized and complex. It uses Python's

random module to ensure that passwords are not predictable and provides

robust security.

Password Storage and Management


● The password storage and management module is built using the Pandas

library. This approach ensures that passwords are organized in a structured

format, making it easy for users to access and manage their stored passwords.

Features of the Password Storage and Management Module:

● Add New Entry:

○ Users can add passwords to the vault by providing a label (for which the

password is intended) and the password itself.

● Remove Entry:

○ Users can remove passwords from the vault by specifying the label

associated with the password they wish to delete.

● Search for Password:

○ Users can search for a password by providing the label, and the program

will display the corresponding password.

● View Password Vault:

○ Users can view the entire password vault or just the most recent

password added to it.

9
Data Storage and Persistence
The program stores password data in a CSV file named "Passwordvault.csv." This

choice of data storage provides several benefits:

● Portability: Users can easily transfer their password data to different devices or

back up the file.

● Easy Import/Export: Users can import existing password data or export it to

other applications for additional security or analysis.

User Interaction and Menu System


The user interface module offers a user-friendly menu system that allows users to

interact with the program. The menu system guides users through password

generation, storage, management, and program exit.

Development Tools and Technologies


The project is developed using Python, a versatile and widely-used programming

language. Key libraries and modules utilized in the development include:

● random: For random password generation.

● pandas: For handling password data in a structured manner.

● os: For system-related operations.

● time: Used to create a visual effect during program exit.

10
Coding
In the following section, we provide the source code for the 'Password Assistant' program.

This Python-based application simplifies secure password generation, storage, and

management. The code encapsulates the core features of the program, offering insights into

its design and functionality.

CODE:
import random as rnd
import pandas as pd
import numpy as np
import os
import time

# Predefined variables
a=0
a1 = 0
SpcChr = ['!', '@', '#', '$', '%', '^', '&', '*']
PasswordVault = pd.DataFrame([], columns=['For', 'Password'])

# Checking for CSV


doesexist = os.path.exists('Passwordvault.csv')
if doesexist == True:
PasswordVault = pd.read_csv('PasswordVault.csv', header=0)
print()
elif doesexist == False:
PasswordVault = pd.DataFrame([], columns=['For', 'Password'])
PasswordVault.to_csv('Passwordvault.csv', index=False)

11
# Checking index
if PasswordVault.empty == True:
n=0
elif PasswordVault.empty == False:
n = len(PasswordVault)
n=1
b = (n - 1)

# Menu 1
os.system('cls')
print('*' * 100)
print('PASSWORD ASSISTANT')
print()
print('An assistant for managing all your passwords,')
print('Made to help generate secure passwords and organize them.')

# Access menu
while a < 1:
PasswordVault = pd.read_csv('PasswordVault.csv', header=0)
input('Press enter to continue.')
os.system('cls')
print('*' * 100)
print('PASSWORD ASSISTANT')
print("_" * 25)
print()
print('1) Generate a high-security Password.')
print('2) Edit Password Vault.')
print('3) View the Password vault.')
print('4) Exit.')
print()
print('Choose your operation: Type-(1/2/3/4)')
ch1 = int(input('Choice:'))
print("_" * 25)

12
print('*' * 50)
print()

# Checking index
if PasswordVault.empty == True:
n=0
elif PasswordVault.empty == False:
n = len(PasswordVault)

b = (n - 1)

# Generate password
if ch1 == 1:
# Password randomizer
os.system('cls')
print("*" * 50)
print('Your new randomly generated password is:')
L1 = chr(rnd.randint(65, 90))
L2 = chr(rnd.randint(65, 90))
L3 = chr(rnd.randint(65, 90))
L4 = chr(rnd.randint(65, 90))
l1 = chr(rnd.randint(97, 122))
l2 = chr(rnd.randint(97, 122))
l3 = chr(rnd.randint(97, 122))
l4 = chr(rnd.randint(97, 122))
N1 = chr(rnd.randint(48, 57))
N2 = chr(rnd.randint(48, 57))
N3 = chr(rnd.randint(48, 57))
N4 = chr(rnd.randint(48, 57))
S1 = str(rnd.choice(SpcChr))
S2 = str(rnd.choice(SpcChr))
wrd = l1 + l2 + l3 + l4 + L1 + L2 + L3 + L4 + N1 + N2 + N3 + N4 +
S1 + S2

13
pswrd = ''.join(rnd.sample(wrd, len(wrd)))
print(pswrd)
print("*" * 50)

# Password saver
print('_' * 25)
print('Would you like to save the password to the Password Vault?:
(y/n)')
sptv = input('Choice: ')
print('_' * 25)
print()

# If yes
if sptv == 'y':
print('-' * 25)
wbst = input('Where will this password be used?: ')
PasswordVault.loc[(n)] = [wbst, pswrd]
PasswordVault.to_csv('Passwordvault.csv', index=False)
print('Your password has been saved for', wbst)
print('-' * 25)
elif sptv == 'Y':
print('-' * 25)
wbst = input('Where will this password be used?: ')
PasswordVault.loc[(n)] = [wbst, pswrd]
PasswordVault.to_csv('Passwordvault.csv', index=False)
print('Your password has been saved for', wbst)
print('-' * 25)

# If no
elif sptv == 'n':
print('-' * 25)
print('Your password has NOT been saved.')
print('-' * 25)

14
elif sptv == 'N':
print('-' * 25)
print('Your password has NOT been saved.')
print('-' * 25)

# If else
else:
print('-' * 25)
print('Invalid Input')
print('Your password has NOT been saved.')
print('-' * 25)
print('*' * 50)

# View Password Vault


elif ch1 == 3:
os.system('cls')
print('_' * 50)
rcpswd = PasswordVault.loc[b, 'Password']
rcfor = PasswordVault.loc[b, 'For']
print('Your Password Vault has:', n, 'Passwords.')
print('Your most recent Password was:', rcpswd, 'for', rcfor)
print('_' * 50)
print('-' * 50)
vwvlt = input('Do you want to see the full Vault (Y/N):')
print('-' * 50)

# If no
if vwvlt == 'n':
print('-' * 50)
print('The vault will NOT be displayed.')
print('-' * 50)
print()
print('*' * 50)

15
elif vwvlt == 'N':
print('-' * 50)
print('The vault will NOT be displayed.')
print('-' * 50)
print()
print('*' * 50)
# If yes
elif vwvlt == 'y':
print('-' * 50)
print('The vault:')
print(PasswordVault)
print('-' * 50)
print()
print('*' * 50)
elif vwvlt == 'Y':
print('-' * 50)
print('The vault:')
print(PasswordVault)
print('-' * 50)
print()
print('*' * 50)
# Other
else:
print('-' * 50)
print('Invalid input.')
print('The vault will NOT be displayed.')
print('-' * 50)
print()
print('*' * 50)

# Edit Vault
elif ch1 == 2:
os.system('cls')

16
while a1 < 1:
print('-' * 50)
PasswordVault = pd.read_csv('PasswordVault.csv', header=0)
input('Press enter to continue.')
print('*' * 50)
os.system('cls')
print('*' * 50)
print('_' * 25)
print('EDIT MENU:')
print()
print('1) Add a new Entry.')
print('2) Remove an Entry.')
print('3) Search for password.')
print('4) Main menu')
print('-' * 25)
print('Choose an option(1/2/3/4):')
entmod = int(input('choice:'))
os.system('cls')

# Checking index
if PasswordVault.empty == True:
n=0
elif PasswordVault.empty == False:
n = len(PasswordVault)
b = (n - 1)

# Add
if entmod == 1:
print('-' * 25)
nwfor = input('Where is the password being used?:')
nwpswrd = input('What is the password:')
PasswordVault.loc[(n)] = [nwfor, nwpswrd]

17
print(nwpswrd, 'was successfully added as the password for',
nwfor)
PasswordVault.to_csv('Passwordvault.csv', index=False)
print('_' * 25)
print()
print('*' * 50)

# Remove
elif entmod == 2:
print('-' * 25)
print('What website do you wish to remove a password for:')
rmvrow = input('Name:')
print(rmvrow)

PasswordVault.drop(PasswordVault.index[(PasswordVault["For"] ==
rmvrow)], axis=0, inplace=True)
PasswordVault.to_csv('Passwordvault.csv', index=False)
print(rmvrow, 'was dropped.')
print()
print('*' * 50)

# Search for password


elif entmod == 3:
print('-' * 25)
print("What password do you want to search for?")
srcpswrd = input('What was the password for:')
print('-' * 25)
print('-' * 25)
print('The Password is:')

print(PasswordVault.loc[PasswordVault.index[(PasswordVault["For"]
== srcpswrd)])
print('-' * 25)

18
print()
print('*' * 50)

# Exit loop
elif entmod == 4:
a1 += 1

# Else
else:
print('Invalid Input')

# Exit Vault
elif ch1 == 4:
a += 1
for i in range(2):
print('Exiting Program.')
time.sleep(.2)
os.system('cls')
print('Exiting Program..')
time.sleep(.2)
os.system('cls')
print('Exiting Program...')
time.sleep(.2)
os.system('cls')
print('Exiting Program....')
time.sleep(.2)
os.system('cls')

# Else
else:
print('Invalid Input')

19
OUTPUT SCREENS:
1. INTRODUCTION SCREEN

2. MAIN MENU

3. PASSWORD LENGTH SPECIFICATION

20
4. RANDOM GENERATED PASSWORD

5. DISPLAY PASSWORDS

21
6. EDITING VAULT MENU

7. ADDING NEW VALUES

8. REMOVING VALUES

22
9. SEARCHING FOR PASSWORD

23
Future Enhancements
In the future, the "Password Assistant" could be improved and extended in
several ways, including:

● Enhanced Security: Implement more advanced password generation techniques, such

as support for longer passwords or passphrase generation.

● User Authentication: Add a secure login system to protect the password vault from

unauthorized access.

● Encryption: Incorporate encryption to secure stored passwords in the CSV file.

● Cross-Platform Compatibility: Develop a user-friendly graphical interface to make the

program accessible on multiple platforms.

● Cloud Integration: Allow users to synchronize their password vault with cloud services

for backup and accessibility on different devices.

● Password Strength Analysis: Implement a feature to analyze the strength of stored

passwords and provide recommendations for improving security.

24
REFERENCES
To work on this project, I have referred to the following books and websites during the
various phases of development of the project.

1. Informatics Practices for Class XII - by Sumita Arora

2. Pandas Website

3. Python Official Website

4. Wikipedia

5. Stack Overflow

6. Github

7. GeeksForGeeks

Other than the above mentioned book, the suggestions and supervision of my teacher and my
class experience also helped me to develop this software project.

25

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy