Basic Password Generator
Goal
Create a Python script that will generate a password with given parameters.
Program Requirements
Requires password length
Requires password criteria
Does it contain uppercase characters?
Does it include numbers?
Does it include special characters?
Generate a password with the given constraints
Output the generated password
We are ignoring input validations for this exercise.
Python Translation
Code Explanation
Imports: The
randommodule is imported to generate random characters and numbers.Character Sets:
lowercase: Contains ASCII values for lowercase letters (97-122).uppercase: Contains ASCII values for uppercase letters (65-90).digits: Contains ASCII values for digits (48-57).special: Contains ASCII values for special characters (33-47, 58-64, 91-96, 123-126).
Initialization:
password: Starts as an empty string where the generated password will be stored.options: Initially set tolowercase.copy(), assuming every password will include lowercase letters.
User Input:
size: User defines the length of the password.has_upper,has_digit,has_special: Users choose whether to include uppercase letters, digits, and special characters, respectively.
Processing:
Step 1: Based on user input (
has_upper,has_digit,has_special), appropriate character sets (uppercase,digits,special) are added tooptions.Step 2: A
whileloop continues untilpasswordreaches the desired length (size). In each iteration:random.choice(options)picks a random ASCII value fromoptions.chr()converts the ASCII value to its corresponding character.The character is appended to
password.
Output:
Finally, the generated password (
password) is displayed to the user.
Connected Readings
General Password Tips
Weak Passwords
A weak password is one that is easy to guess or crack, often due to its simplicity, common usage, or predictability. Characteristics of weak passwords include:
Short length: Typically less than 8 characters.
Common words or sequences: Such as "password", "123456", "qwerty", or "abc123".
Personal information: Easily obtainable information like a user’s name, birthdate, or phone number.
Lack of variety: Using only letters, or only numbers, without mixing in other character types.
Strong Passwords
A strong password is designed to be difficult to guess or crack, thereby enhancing security. Characteristics of strong passwords include:
Long length: Typically 12 characters or more.
Complexity: A mix of uppercase and lowercase letters, numbers, and special characters (examples:
@, #, $, %).Unpredictability: Avoiding common words, phrases, and predictable patterns.
Uniqueness: Different passwords for different accounts to prevent a breach on one site from compromising others.
Last updated