Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions password_generator.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
import random
import string
import argparse
import secrets
import string


def generate_password(length, use_upper, use_lower, use_digits, use_symbols):
characters = ''
illegal_chars = "\"\';{}[]()|\\<>:,"
if use_upper:
characters += string.ascii_uppercase
if use_lower:
characters += string.ascii_lowercase
if use_digits:
characters += string.digits
if use_symbols:
characters += string.punctuation
characters += ''.join(i for i in string.punctuation if i not in illegal_chars)

if not characters:
raise ValueError("At least one character type must be selected.")

password = ''.join(random.choice(characters) for _ in range(length))
password = ''.join(secrets.choice(characters) for _ in range(length))
return password

def save_password(password):
Expand Down