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

Генератор Безопасных Паролей-Фраз

Генерирует запоминающиеся парольные фразы в стиле Diceware с оценкой энтропии.

38

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

Парольная фраза — это последовательность несвязанных между собой слов, объединённых для создания легко запоминаемого и безопасного учётного данного аутентификации. Генератор Безопасных Парольных Фраз создаёт фразы, используя метод Diceware — проверенную криптографическую технику, которая использует естественную способность человеческого мозга запоминать последовательности слов вместо случайных комбинаций символов. В отличие от традиционных паролей, переполненных специальными символами, парольные фразы Diceware обеспечивают исключительную безопасность через простоту, делая их идеальными для долгосрочных учётных данных, таких как главные пароли менеджеров паролей, банковские счета и высокозащищённые секреты.

Использование генератора просто: выберите количество слов (обычно 5-6 для большинства целей), выберите символ разделителя и при необходимости включите прописные буквы. Инструмент мгновенно вычисляет энтропию — статистическую меру прочности пароля — показывая вам точно, какой уровень безопасности обеспечивает ваша фраза в битах. Каждое добавленное слово увеличивает энтропию логарифмически; например, 4-словная фраза обеспечивает ~51 бит энтропии, а 6-словная прыгает до ~77 бит, превышая современные рекомендации безопасности.

Парольные фразы Diceware работают, потому что они объединяют истинную случайность (от криптографически защищённого генератора случайных чисел вашего компьютера) с большим словником (обычно 7,776 слов), гарантируя, что злоумышленники не могут угадать или предсказать результат. Многие системы требуют специальных символов или цифр; вместо того чтобы ослабить фразу предсказуемыми подстановками, создайте её здесь и сохраните в менеджере паролей, если ваш аккаунт требует дополнительных ограничений. Этот инструмент особенно ценен для разработчиков, специалистов по безопасности и любого, кто управляет конфиденциальными учётными данными и ценит как запоминаемость, так и математическую определённость.

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

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

import secrets
import math

# A small built-in word list; replace with a full EFF large wordlist in production.
WORDLIST = [
    "apple", "brave", "crane", "drift", "eagle", "flame", "grace", "hover",
    "ivory", "jewel", "knack", "lunar", "maple", "noble", "ocean", "pearl",
    "quilt", "raven", "stone", "tiger", "umbra", "vivid", "waltz", "xenon",
    "yacht", "zonal", "amber", "blaze", "crisp", "delta", "ember", "frost",
    "globe", "haste", "index", "joust", "karma", "lance", "marsh", "nerve",
    "ozone", "pilot", "query", "ridge", "storm", "trove", "ultra", "vigor",
    "width", "xylem", "yearn", "zesty",
]

def generate_passphrase(
    word_count: int = 4,
    separator: str = "-",
    capitalize: bool = False,
    append_number: bool = False,
) -> str:
    words = [secrets.choice(WORDLIST) for _ in range(word_count)]
    if capitalize:
        words = [w.capitalize() for w in words]
    phrase = separator.join(words)
    if append_number:
        phrase += separator + str(secrets.randbelow(9000) + 1000)
    return phrase

def passphrase_entropy(word_count: int, wordlist_size: int) -> float:
    """Bits of entropy: log2(wordlist_size ^ word_count)"""
    return word_count * math.log2(wordlist_size)


if __name__ == "__main__":
    for _ in range(5):
        phrase = generate_passphrase(4, "-", capitalize=True, append_number=True)
        print(phrase)
    bits = passphrase_entropy(4, len(WORDLIST))
    print(f"Entropy with {len(WORDLIST)}-word list, 4 words: {bits:.1f} bits")

Comments & Feedback

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