🛠️ToolsShed

Generatore di password

Genera password forti e sicure con opzioni personalizzabili.

6128

Il generatore di password crea password casuali crittograficamente sicure usando il generatore di numeri casuali integrato del tuo browser (la Web Crypto API). Le password vengono generate interamente sul tuo dispositivo — non vengono mai inviate sulla rete o memorizzate da nessuna parte.

Configura la lunghezza (8-128 caratteri) e il set di caratteri per soddisfare i requisiti del servizio per cui stai creando un account. La maggior parte degli esperti di sicurezza raccomanda password di almeno 16 caratteri con una combinazione di lettere maiuscole, minuscole, numeri e simboli.

Un gestore di password è il miglior compagno di un generatore di password. Strumenti come Bitwarden, 1Password o KeePass ti permettono di generare e memorizzare una password unica e casuale per ogni sito senza doverle ricordare. Non riutilizzare mai le password su più servizi.

Domande Frequenti

Implementazione del Codice

import secrets
import string

def generate_password(
    length: int = 16,
    use_upper: bool = True,
    use_lower: bool = True,
    use_digits: bool = True,
    use_symbols: bool = True,
) -> str:
    """Generate a cryptographically secure random password."""
    charset = ""
    required = []

    if use_lower:
        charset += string.ascii_lowercase
        required.append(secrets.choice(string.ascii_lowercase))
    if use_upper:
        charset += string.ascii_uppercase
        required.append(secrets.choice(string.ascii_uppercase))
    if use_digits:
        charset += string.digits
        required.append(secrets.choice(string.digits))
    if use_symbols:
        symbols = "!@#$%^&*()-_=+[]{}|;:,.<>?"
        charset += symbols
        required.append(secrets.choice(symbols))

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

    # Fill the rest of the password
    remaining = [secrets.choice(charset) for _ in range(length - len(required))]
    password_list = required + remaining

    # Shuffle to avoid predictable positions
    secrets.SystemRandom().shuffle(password_list)
    return "".join(password_list)

# Examples
print(generate_password(16))
print(generate_password(24, use_symbols=False))
print(generate_password(8, use_upper=False, use_symbols=False))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.