Project Report
Project Report
Name : __________________________________________
Class : __________________________________________
Roll No. : __________________________________________
1
1Click here to enter text.
THE ASHOK LEYLAND
SCHOOL, HOSUR
COMPUTER SCIENCE PROJECTREPORT
2023-2024
BONAFIDE CERTIFICATE
Certified to be the Bonafide Project Work done by_______________________
________________________________________________________________
of class XII in The Ashok Leyland School, Hosur during the year 2023-2024.
Date:
Teacher In-charge:
Submitted for AISSCE practical examination held on ___________________at
The Ashok Leyland School- Hosur during the year 2023-2024.
2
2Click here to enter text.
Internal Examiner Principal External Examiner
ACKNOWLEDGEMENT
3
3Click here to enter text.
ABSTRACT
Passwords are digital keys that guard the gateway to the online lives, acting as
the first line of defence against unauthorized access to the personal information,
accounts and digital assests. They play a vital role in preserving our privacy,
financial security, and data integrity. Strong and unique passwords are essential
to thwart cyber attacks and protect against identity theft, communication, and
transactions. In today’s interconnected world, where the risk of data breaches
and cyber threats is ever-present, the importance of robust password practices
cannot be overstated. A well-generated password is characterized by its length,
complexity and unpredictability making it resistant to hacking attempts and
unauthorized access. Automated password generators use algorithms to produce
strings of characters that include a mix of letters, numbers, and special symbols,
ensuring a high degree of randomness and security. A Random Password
Generator application offers the capability to create passwords tailored to
specific security needs. It provides three distinct levels of password generation:
Basic, intermediate, and advanced. Each level employs its unique method for
crafting passwords. The basic level generates passwords with a mix of
uppercase and lowercase letters. The intermediate level extends this by
including numbers alongside uppercase and lowercase characters. The advanced
level, on top of the previous features, adds symbols and special characters to
enhance password complexity. Additionally, rather than generating entirely
random passwords, this application incorporates user-provided names and
augments them with three numerical digits to create a personalized yet secure
password. The application is built using python programming language. A
python module called tkinter is imported for the graphical user interface (GUI).
To keep the backup of the tasks entered and data storage SQL has been used.
4
4Click here to enter text.
TABLE OF CONTENT
4 Project Code 13
5 Output 17
6 Conclusion 27
7 Bibliography 28
5
5Click here to enter text.
INTRODUCTION
6
6Click here to enter text.
HARDWARE AND SOFTWARE
REQUIREMENTS
7
7Click here to enter text.
DETAILS
Password Length Customization: The ability to customize password length is a
fundamental feature. Users can specify the desired length, tailoring passwords
to meet specific security requirements. Whether it is a short PIN or a long
passphrase, this feature adapts to different use cases.
Character Type Selection: Users have granular control over the character types
included in the password. This includes the following options: lowercase
letters, uppercase letters, digits, and special symbols. These options ensure
that passwords can be designed to meet the specific requirements of different
platforms and services.
Password Policy: A password policy defines the rules for password creation.
Users can choose from predefined policies, such as weak, medium, or strong.
Additionally, for advanced users, the "custom" option allows them to define a
specific character set for password generation, catering to unique security
needs.
Password Strength Assessment: Password strength is a critical aspect of
security. The application automatically assesses the strength of the generated
password based on a set of common password security rules. It categorizes
passwords into three categories: weak, moderate, or strong, providing users
with valuable feedback on the security level of their passwords. For example, a
password like "Password123!" would be categorized as strong, while "12345"
would be considered weak.
8
8Click here to enter text.
Password History:
Password History Tracking: The password history feature goes beyond simple
password generation. It maintains a chronological record of previously
generated passwords. Users can not only view the history but also label and
annotate each password, adding context and relevance. This detailed history is
a powerful tool for tracking and managing multiple passwords across different
platforms and services.
Copy to Clipboard:
Clipboard Integration: The "Copy to Clipboard" feature streamlines the
process of using generated passwords. With a single click, users can copy the
generated password to their clipboard, allowing for easy pasting into various
applications, websites, and services. This feature reduces the likelihood of
errors during manual entry and enhances user convenience .
Save Password:
Password Saving: Beyond just copying passwords to the clipboard, the
application also provides a means to save the generated password to a text
file. Users can select the location and filename for the saved password, adding
an extra layer of organization and security to password management.
9
9Click here to enter text.
Generating Passwords
Generate Password:
Upon clicking the "Generate Password" button, the application leverages the
selected options and policies to create a password. It then presents the
generated password to the user. This user-friendly process ensures that even
individuals with limited technical expertise can create strong, secure
passwords.
10
10Click here to enter text.
Password Strength:
Password Strength Evaluation:
A key aspect of the application is its automatic password strength evaluation.
This feature eliminates the guesswork by clearly indicating the security level of
the generated password. Let us consider an example: a user creates a
password and receives a "strong" rating. They can be confident that their
password meets industry-standard security requirements.
Saving Passwords:
The "Save Password" feature provides users with a convenient way to archive
and organize their generated passwords. When they click the "Save Password"
button, the application prompts them to select the location and filename for
the saved password. In practice, this functionality is immensely valuable for
keeping track of passwords across different accounts and services.
Copying Passwords:
The "Copy to Clipboard" functionality simplifies the process of using generated
passwords. Users can copy a password with a single click, reducing the
likelihood of errors during manual entry. For instance, when creating a new
online shopping account, users can seamlessly paste their generated password
during the registration process, enhancing both security and usability.
11
11Click here to enter text.
Password Strength Evaluation:
Weak Passwords
The application categorizes passwords as "Weak" when they fall short of
industry-standard security requirements. A common scenario is a short and
simple password, such as "12345." By identifying these weaknesses, users are
encouraged to create stronger and more secure passwords.
Strong Passwords
"Strong" passwords are those that meet the stringent criteria for password
security. They typically include a mix of uppercase and lowercase letters, digits,
and special symbols. For example, a password like "P@$$w0rd123!" would be
categorized as strong.
Moderate Passwords
Passwords that do not meet the criteria for being weak or strong fall into the
"Moderate" category. These passwords, while not as robust as "strong"
passwords, are still considered secure for many applications. An example might
be a password like "SecurePwd2023."
12
12Click here to enter text.
PROJECT CODE
import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
from tkinter import filedialog
import random
import string
import pyperclip
def generate_password():
length = int(length_entry.get())
use_lowercase = lowercase_var.get()
use_uppercase = uppercase_var.get()
use_digits = digits_var.get()
use_special = special_var.get()
policy = policy_entry.get()
if policy == "custom":
custom_characters = custom_characters_entry.get()
password = generate_custom_password(length, custom_characters)
else:
password = generate_policy_password(length, use_lowercase, use_uppercase,
use_digits, use_special, policy)
strength = check_password_strength(password)
strength_label.config(text=f"Password Strength: {strength}")
if policy == "strong":
characters += "$#@" # Add additional special characters for strong passwords
def copy_to_clipboard():
password = password_label.cget("text")[18:]
if password:
pyperclip.copy(password)
messagebox.showinfo("Copy to Clipboard", "Password copied to clipboard.")
def update_history():
history_text.config(state=tk.NORMAL)
history_text.delete('1.0', tk.END)
for i, password in enumerate(password_history, start=1):
history_text.insert(tk.END, f"Password {i}: {password}\n")
history_text.config(state=tk.DISABLED)
def check_password_strength(password):
if len(password) < 8:
return "Weak"
if any(char.isupper() for char in password) and any(char.islower() for char in password)
and any(char.isdigit() for char in password) and any(char in string.punctuation for char in
password):
return "Strong"
return "Moderate"
root = tk.Tk()
root.title("More Complex Password Generator")
14
14Click here to enter text.
title_label = tk.Label(root, text="Password Generator", font=("Helvetica", 16))
title_label.pack(pady=10)
lowercase_var = tk.BooleanVar()
lowercase_check = tk.Checkbutton(options_frame, text="Lowercase",
variable=lowercase_var)
lowercase_check.grid(row=0, column=0, padx=10)
uppercase_var = tk.BooleanVar()
uppercase_check = tk.Checkbutton(options_frame, text="Uppercase",
variable=uppercase_var)
uppercase_check.grid(row=0, column=1, padx=10)
digits_var = tk.BooleanVar()
digits_check = tk.Checkbutton(options_frame, text="Digits", variable=digits_var)
digits_check.grid(row=1, column=0, padx=10)
special_var = tk.BooleanVar()
special_check = tk.Checkbutton(options_frame, text="Special Symbols",
variable=special_var)
special_check.grid(row=1, column=1, padx=10)
use_custom_policy = tk.BooleanVar()
custom_policy_check = tk.Checkbutton(root, text="Use Custom Policy",
variable=use_custom_policy)
custom_policy_check.pack()
root.mainloop()
16
16Click here to enter text.
OUTPUT:
17
17Click here to enter text.
18
18Click here to enter text.
19
19Click here to enter text.
20
20Click here to enter text.
21
21Click here to enter text.
22
22Click here to enter text.
23
23Click here to enter text.
24
24Click here to enter text.
25
25Click here to enter text.
26
26Click here to enter text.
Conclusion:
The project lays the foundation for potential enhancements and future
iterations. User feedback and evolving security standards can guide
updates to ensure the application remains current and effective in
addressing emerging challenges in password security.
27
27Click here to enter text.
BIBLIOGRAPHY
28
28Click here to enter text.