Перейти к содержимому

Генератор паролей

Генерируйте надёжные, безопасные пароли с настраиваемыми параметрами.

6128

Об этом инструменте

Генератор паролей создаёт криптографически стойкие случайные пароли, используя встроенный генератор случайных чисел браузера (Web Crypto API). Это означает, что пароли генерируются полностью на вашем устройстве — они никогда не передаются по сети и нигде не сохраняются.

Настройте длину (8–128 символов) и набор символов в соответствии с требованиями сервиса. Большинство экспертов по безопасности рекомендуют пароли длиной не менее 16 символов из сочетания заглавных и строчных букв, цифр и специальных символов.

Менеджер паролей — лучший спутник генератора паролей. Такие инструменты, как Bitwarden, 1Password или KeePass, позволяют создавать и хранить уникальный случайный пароль для каждого сайта без необходимости его запоминать. Никогда не используйте одни и те же пароли для нескольких сервисов.

Часто задаваемые вопросы

Реализация кода

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.