0% found this document useful (0 votes)
14 views16 pages

Aditya Kokate

The document is a micro project report on a Password Generator developed as part of a Python Programming course at Matoshri Aasarabai Polytechnic. It details the project's objectives, theoretical background, implementation, and evaluation, emphasizing the importance of strong passwords in cybersecurity. The project allows users to generate secure passwords based on customizable parameters, enhancing digital security through automation.

Uploaded by

Aditya Kokate
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)
14 views16 pages

Aditya Kokate

The document is a micro project report on a Password Generator developed as part of a Python Programming course at Matoshri Aasarabai Polytechnic. It details the project's objectives, theoretical background, implementation, and evaluation, emphasizing the importance of strong passwords in cybersecurity. The project allows users to generate secure passwords based on customizable parameters, enhancing digital security through automation.

Uploaded by

Aditya Kokate
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/ 16

Micro Project

Report On
PASSWORD GENERATOR
Under Course:Python Programing (314004)

Semester: 4th
Maharashtra State Board of Technical Education,
Mumbai

Department ofComputer

Matoshri Aasarabai Polytechnic, Eklahare,


Nashik
Academic Year: 2024-25

1
CERTIFICATE
This is to certify that following students of FOURTH SEMESTER Diploma in
Computer Engineering have successfully completed the Micro-Project entitled
“Password Generator” under my supervision, in the partial fulfillment of
Course Python Programing (314004) for Academic Year 2024-2025 as per
prescribed in the MSBTE “K-Scheme” curriclum.
Roll No Enrollment No. Exam Seat Name of Students
Number

03 23611810199 491998 Pranali Ashok Ghuge


02 23611810194 491993 Riya Subash Bhoye

Date: Place: Nashik.

Guide Head of Department Principal


(Ms.P.V.Jadhav) (Prof.V.A.Sonawane) (Dr.A.S.RELKAR)

2
ACKNOWLEDGEMENT

With deep sense of gratitude we would like to thanks all the people who have
lit our path with their kind guidance. We are very grateful to these
intellectuals who did their best to help during our project work.

It is our proud privilege to express deep sense of gratitude to,


Dr.A.S.RELKAR Principal of Matoshri Aasarabai Polytechnic,
Eklahare, Nashik, for his comments and kind permission to complete this
Micro Project.

We remain indebted to Prof.V.A.Sonawane, Head Of Computer Dept., for


his suggestion and valuable guidance.

The special gratitude goes to our internal guide Ms.P.V.Jadhav, technical


staff members, and non-technical staff members, of Computer . Department
for their expensive, excellent and precious guidance in completion of this
work.

Name of Students:

1. Pranali Ashok Ghuge

2. Riya Subash Bhoye

3
MATOSHRI AASARABAI POLYTECHNIC, EKLAHARE,
NASHIK
Department of Computer
Index of Micro Project Report

Programme: Computer Engeneering Semester: FOURTH

Course: Python Programming( PWP ) Course Code: (314004)

Title of Micro Project: PASSWORD GENERATOR

Sr.
Details Page No.
No.

Rubrics
1 5

2 Logbook 7

3 Project Work (Introduction) 9

Project Work (Main Details)


4 11

5 Project Work (Conclusion) 17

Signature of Faculty

4
ANNEXURE I
Rubric for Evaluation of Micro Project of Python(22516)

Title of Micro Project: Password


Generator Group Members: 2
Roll Exam Seat No.
Sr.No. Enrollment No. Name of Students
No.
1 02 23611810194 491993 Riya Subash Bhoye
2 03 23611810199 491998 Pranali Ashok Ghuge

Indicators for different level of


Marks performance(Evaluation Scale -1 to 6)
Criteria obtained
Sr.
(Out of 6)

No. Poor(1-2) Average(3-4) Good(5-6)


1 Relevance to the Course Not at all Few Project topic is
related to the subtopics are from the course.
course related to the
course.
2 Project Proposal Not submitted Late Submitted Submitted in the
first week
3 Completion of target as per Submitted after Submitted Submitted
proposal due date. within due complete project
date but taken within specified
slightly more due
time. date.
4 Quality of Project Poor quality Average quality Good quality
project project project
5 Report Preparation Not done. Done but not Completed and
satisfactory. submitted in time.
Total:
Converted Out of 6:

(Ms.P.V.Jadhav)
Name & Sign of Course
Teacher

5
ANNEXURE II
Evaluation Sheet for the Micro Project
Academic Year: 2024-2025 Semester: Fourth

Course: Python Programing Course Code: 314004


Name of Faculty: Ms.P.V.Jadhav

 COs addressed by the Micro Project:


 a. Write Python programs using basic programming constructs
 b. Use functions, strings, and list/tuple/dictionary in Python
 c. Develop mini projects using file handling and modular programming concepts
Major Learning Outcomes achieved by students by doing the Projects:

a) Practical Outcomes:-
• Develop a real-life mini project using Python
• Apply file handling and user interaction in Python
b) Unit Outcomes in Cognitive Domain:-
Apply logic and Python Programing Code
c) Outcomes in Affective Domain:-
Follow Precautionary Measures
Demonstrate Working As a Leader / A Team Member Follow ethical
Practices
Marks
out of 6 Total
Marks out of 4for
for
Roll Enrollment Exam performance in marks
Student Name performa
No. No. Seat No. oral/presentation out of
nce in
activity 10
group
activity
02 23611810194 491993 Riya Subash Bhoye
03 23611810199 491998 Pranali Ashok Ghuge

(Ms.P.V.Jadhav)
(Name & Sign of Faculty)

6
MATOSHRI AASARABAI POLYTECHNIC,EKLAHARE,NASHIK
Department of Computer Log Book for Micro- Project
Semester: Fourth Programme: CO4k

Course: Python Programing Class: Second Year


Topic of the Micro-Project: Password Generator
Sr. Roll Enrollment Exam Seat
Name of Group Members Sign.
No. No. No. No.
1 02 23611810194 491993 Riya Subash Bhoye
2 03 23611810199 491998 Pranali Ashok Ghuge

Member
Week Teacher’s
Discussion & Details s Teacher’s Comment
No. Sign.
Present
Discussion on the concept of Micro Discussed micro
1 5 project concept
project with teacher
Finalization of Group and Project topic
2 5 Finalized the group
with Project Proposal submission
Preliminary discussion with guide about 5
3 Discussed with guide
content of Micro project
Related Information Gathered by team 5
4 Gathered information
about project
Organizing the information for project 5 Organized the
5
work information
Discussing project related queries with 5
6 Discussed the queries
teacher if any
Preparation of Micro project model or 5
7 Prepared micro project
content

8 Finalizing the project work by teacher 5 Finalized project work

5 Completed report
9 Report writing
writing
Presentation and Oral on project by group 5 GavePresentation
10
members submitted project .

(Ms.P.V.Jadhav)
(Name & Sign of Faculty)

7
Abstract
In today's digital age, ensuring the security of online accounts is of utmost
importance. One fundamental aspect of cybersecurity is the use of strong,
unpredictable passwords. This project focuses on developing a Password Generator
using Python that allows users to create secure, random passwords based on
customizable parameters.
The application enables users to specify the desired length of the password and
choose whether to include letters (uppercase and lowercase), digits, and special
symbols. The password is then generated using Python’s built-in random and string
libraries to ensure randomness and complexity.
This project not only highlights the importance of strong password practices but also
provides an easy-to-use tool for creating secure credentials. It can be extended with
features like a graphical user interface (GUI), password strength analysis, clipboard
copying, or even integration into a password management system.

8
Introduction
In the era of rapid digital transformation, securing personal and professional
data has become more critical than ever. One of the most common and
essential methods of protecting information is through the use of
passwords. However, many users tend to create weak or easily guessable
passwords, making their accounts vulnerable to hacking and cyberattacks.

To address this issue, the Password Generator project aims to provide a


simple yet effective solution for creating strong, random, and secure
passwords. Developed using Python, this tool allows users to generate
passwords based on their preferences, including the desired length and the
inclusion of letters, numbers, and special characters.

By automating the process of password creation, the project helps users


enhance their digital security with minimal effort. It also serves as a
practical demonstration of basic programming concepts such as loops,
conditional statements, user input handling, and the use of standard
libraries in Python

9
Therotical Background
The Password Generator project is rooted in several theoretical areas of computer
science and cybersecurity, including random number generation, character
encoding, string manipulation, and password security principles. This section
outlines the key concepts that form the foundation of the project.

Sure! Here's a more detailed look into the theoretical background of *password
generators*, expanding on the cryptographic, mathematical, and practical
considerations:

---

1. Entropy and Password Strength*

*Entropy* is a measure of uncertainty or randomness. In the context of passwords:

- *Entropy (bits)* = \( \log_2(N^L) = L \cdot \log_2(N) \)


where:
- \( N \) = number of unique characters available,
- \( L \) = length of the password.

- Example:
- Using 62 characters (A–Z, a–z, 0–9),
- Password length = 12,
- Entropy ≈ 12 × log₂(62) ≈ 71.5 bits.

- A password with *80+ bits of entropy* is considered strong for long-term


security.

---

2. Cryptographically Secure Pseudorandom Number Generators (CSPRNGs)*

Unlike standard PRNGs (which are deterministic and predictable), *CSPRNGs*


are designed to be:

- *Unpredictable*: Even if part of the output is known, the rest is still secure.
- *Secure*: Resistant to reverse-engineering.

10
- Examples:
- *Python*: secrets module or os.urandom()
- *JavaScript*: crypto.getRandomValues()
- *Java*: SecureRandom

Use of weak RNGs (like rand() or Math.random()) can result in predictable


passwords, which is a serious vulnerability.

---
3. Brute-Force Resistance*

The strength of a password depends on its *resistance to brute-force attacks*,


where an attacker systematically tries all combinations.

- The expected number of guesses = \( \frac{1}{2} \cdot N^L \)


- As computing power grows, passwords must get longer or more complex to stay
secure.
- *Time-to-crack* increases exponentially with entropy.

---

4. Dictionary and Pattern Attacks*

Attackers often use:

- *Dictionary attacks*: Using lists of common passwords or words.


- *Pattern attacks*: Exploiting predictable human patterns (e.g., “Password123!”).

A good password generator avoids these by:


- Not using real words or common patterns.
- Not producing passwords with reused structures.

---

5. Usability vs Security Trade-off*

There's a trade-off between a password's *strength* and its *usability*.

11
- Random, long passwords are secure but hard to remember.
- Passphrases (e.g., "CorrectHorseBatteryStaple") strike a balance—high entropy
and somewhat memorable if generated randomly from a large word list.

---

6. Keyspace Size and Collision Probability*

*Keyspace* = Total number of unique passwords that can be generated.

- Larger keyspace → lower chance of password reuse (collision).


- *Birthday problem*: In systems with many users, collisions may become
statistically relevant at smaller keyspace sizes.

---

7. Compliance with Password Policies*

Generators may need to satisfy external requirements:


- Minimum/maximum length,
- Inclusion of specific character types,
- Avoidance of certain substrings (like usernames or common words).

Designing a generator that meets policies while maintaining entropy is a subtle


challenge.

---

Let me know if you want to explore examples, implementations, or even a


comparison of
password generation algorithms.

12
Program code:

import random
import string

def generate_password(length=12, use_upper=True, use_lower=True,


use_digits=True, use_special=True):
char_pool = ""
if use_upper:
char_pool += string.ascii_uppercase
if use_lower:
char_pool += string.ascii_lowercase
if use_digits:
char_pool += string.digits
if use_special:
char_pool += string.punctuation

if not char_pool:
return "Error: No character set selected"

return "".join(random.choice(char_pool) for _ in range(length))

if _name_ == "_main_":
print("Welcome to the Password Generator!")
length = int(input("Enter password length: "))
use_upper = input("Include uppercase letters? (y/n): ").lower() == "y"
use_lower = input("Include lowercase letters? (y/n): ").lower() == "y"
use_digits = input("Include numbers? (y/n): ").lower() == "y"
use_special = input("Include special characters? (y/n): ").lower() == "y"

password = generate_password(length, use_upper, use_lower, use_digits,


use_special)
print(f"Generated Password: {password}")

13
Output:

Welcome to the Password Generator!


Enter password length: 7
Include uppercase letters? (y/n): y
Include lowercase letters? (y/n): n
Include numbers? (y/n): y
Include special characters? (y/n): y
Generated Password: P*+5?CK

=== Code Execution Successful ===

14
Conclusion

the development of a password generator has proven to be an effective


solution for enhancing digital security. With the increasing number of
cyber threats and data breaches, the importance of strong, complex,
and unique passwords cannot be overstated. This project aimed to
address the common issue of weak and easily guessable passwords by
providing users with a tool that automatically generates secure
passwords based on customizable parameters.

The password generator offers features such as user-defined length


and the inclusion of various character types—uppercase letters,
lowercase letters, numbers, and special characters. These features
ensure that the generated passwords meet modern security standards
and are resistant to brute-force and dictionary attacks.

Throughout the project, emphasis was placed on usability and


reliability. The interface was designed to be user-friendly, allowing
users with minimal technical knowledge to generate strong passwords
quickly and efficiently. Additionally, the underlying logic of
randomness ensures that each password is unique and unpredictable.

Overall, this project not only provides a practical tool for everyday use
but also highlights the critical role of secure password practices in
maintaining digital privacy. Moving forward, future improvements
could include the integration of password management features,
mobile compatibility, and advanced security checks, making the tool
even more robust and accessible for a wider audience.

15
Reference

1. Python Official Documentation: https://docs.python.org/3/


2. Python Documentation – https://docs.python.org/3/
3. W3Schools Python – https://www.w3schools.com/python/
4. Password Generator System Example (Inspiration) –
https://www.sourcecodester.com/python/15641/password-generator-systemusing-
python-tkinter.html

16

You might also like