Обновлено:

Рандомные символы

Нужна случайная строка для пароля, токена доступа или тестовых данных? Ручной подбор символов – потеря времени и ложное ощущение уникальности. Человек склонен повторять паттерны, а алгоритм – нет.

Параметры генерации
Выберите стандартный набор или введите свой
от 1 до 10 000 символов
Опции
Рекомендуемая длина строки
НазначениеМинимумРекомендуетсяПримечание
Одноразовый код46–8Только цифры, удобно для SMS
Промокод810–12Буквы + цифры, без спецсимволов
Пароль аккаунта1216–20Смешанный набор обязателен
API-токен3232–64Hex или Base64 без спецсимволов
Криптографический ключ4343–64Base64 или hex, 256+ бит энтропии
Как работает энтропия

Энтропия – мера непредсказуемости строки в битах. Чем выше энтропия, тем дольше перебирать все комбинации:

Энтропия = log₂(алфавит) × длина

Например, 16 символов из 94 знаков дают 128 бит энтропии. При скорости 1 млрд попыток в секунду подбор займет ~10¹⁸ лет.

  • <50 бит: слабо, уязвимо для атак
  • 50–70 бит: приемлемо для неритичных данных
  • 70–128 бит: надежно для паролей
  • >128 бит: криптографический уровень

Что такое рандомные символы

Рандомные символы – это строка, каждый символ которой выбран случайно из заданного набора. Выбор каждого символа не зависит от предыдущих, поэтому предсказать результат невозможно.

Основные параметры генерации:

  • Длина строки – количество символов в результате (от 1 до нескольких тысяч)
  • Набор символов (алфавит) – пул, из которого выбираются символы
  • Уникальность – допускать ли повторения символов в строке
  • Тип генератора – псевдослучайный (PRNG) или криптографически стойкий (CSPRNG)

Наборы символов и размер алфавита

Чем больше алфавит, тем сложнее подобрать строку перебором. Вот стандартные наборы:

НаборСимволыРазмер алфавита
Цифры0–910
Строчные буквы (лат.)a–z26
Прописные буквы (лат.)A–Z26
Буквы + цифрыa–z, A–Z, 0–962
С буквами + цифры + спецсимволыa–z, A–Z, 0–9, !@#$%^&* и др.90–94
Кириллица (строчные)а–я32
Полная кириллицаа–я, А–Я64
Шестнадцатеричные0–9, a–f16
Base64a–z, A–Z, 0–9, +, /64

Количество возможных комбинаций при длине L и алфавите N вычисляется по формуле:

Комбинации = N^L

Для строки из 16 символов на алфавите 94 знака: 94¹⁶ ≈ 4,8 × 10³¹ вариантов. Полный перебор при скорости 1 млрд попыток в секунду займёт ~1,5 × 10¹⁵ лет.

Зачем генерировать случайные строки

Каждая задача требует своего сочетания длины и набора символов.

Пароли

Минимум 12 символов, обязательно смешанный набор: буквы обоих регистров, цифры, спецсимволы. Не используйте словарные слова, даты и повторяющиеся паттерны – они уязвимы для атак по словарю.

API-токены и ключи доступа

Обычно 32–64 символа в шестнадцатеричном или Base64-формате. Токены передаются в заголовках HTTP, поэтому спецсимволы лучше исключить или закодировать.

Идентификаторы записей

Короткие строки (8–12 символов) из букв и цифр для URL, промокодов, реферальных ссылок. Важно избегать неоднозначных пар: 0/O, 1/l/I.

Тестовые данные

Длинные случайные строки для проверки переполнения буфера, лимитов полей ввода, кодировок. Длина – от 256 до 1 000 000+ символов.

Одноразовые коды (OTP)

4–8 цифр для SMS-верификации, email-подтверждения. Цифровой набор удобен для ввода на мобильных устройствах.

Как рассчитать нужную длину строки

Энтропия (непредсказуемость) строки в битах:

Энтропия = L × log₂(N)

Где L – длина строки, N – размер алфавита.

Минимальные рекомендации по энтропии:

НазначениеМинимальная энтропияПример строки
Одноразовый код13 бит (4 цифры)4827
Промокод40–50 битaX9kM2qp
Пароль аккаунта70–80 битKj7!mP2@nR4q
API-токен128 битa3f8c... (32 hex-символа)
Криптографический ключ256 бит43 символа Base64

Калькулятор выше автоматически рассчитывает энтропию для выбранного набора и длины.

Псевдослучайность vs криптографическая стойкость

Обычные генераторы (Math.random в JavaScript, rand() в PHP) – псевдослучайные. Они используют алгоритм с начальным значением (seed). Если злоумышленник узнает seed, он воспроизведёт всю последовательность.

Криптографически стойкие генераторы (CSPRNG) собирают энтропию из системных источников: движения мыши, тайминги клавиш, тепловой шум процессора. В браузере это crypto.getRandomValues(), в Node.js – crypto.randomBytes().

Для паролей и токенов используйте только CSPRNG. Для тестовых данных и промокодов достаточно обычного PRNG.

Как использовать генератор

Калькулятор выше позволяет настроить все параметры генерации:

  1. Выберите набор символов – предустановленные наборы (цифры, буквы, hex) или введите свой
  2. Укажите длину – от 1 до 10 000 символов
  3. Отметьте опции – исключить неоднозначные символы (0/O, 1/l), запретить повторы
  4. Сгенерируйте – результат появляется мгновенно, данные не покидают браузер

Генератор работает на crypto.getRandomValues() – это криптографически стойкий источник случайности, встроенный в браузер.

Типичные ошибки при работе со случайными строками

Слишком короткий пароль. 8 символов на алфавите 62 – это ~48 бит энтропии. Современные GPU подбирают такие пароли за часы. Минимум 12 символов.

Узкий алфавит. Пароль из 16 строчных букв (26 символов) слабее, чем из 12 символов смешанного набора (94 символа): 75 бит против 78 бит энтропии.

Предсказуемый seed. Если генератор инициализируется временем суток, злоумышленник сужает пространство перебора до нескольких тысяч вариантов.

Хранение в открытом виде. Сгенерированный токен не должен попадать в логи, историю команд или публичные репозитории. Используйте менеджеры паролей и переменные окружения.

Исключение спецсимволов «для удобства». Убрав 32 спецсимвола из алфавита 94, вы сокращаете пространство комбинаций для 12-символьной строки в ~18 раз.

Статья носит информационный характер. Для защиты критичных систем консультируйтесь со специалистами по информационной безопасности.

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

Сколько рандомных символов нужно для надёжного пароля?

Минимум 12 символов со смешанным набором (буквы, цифры, спецсимволы). 16+ символов – для критичных аккаунтов. Каждый дополнительный символ экспоненциально увеличивает время подбора.

Чем псевдослучайные числа отличаются от истинно случайных?

Псевдослучайные генераторы (PRNG) используют математические алгоритмы и начальное значение – seed. Истинно случайные берут данные из физических процессов. Для паролей достаточно криптографически стойкого PRNG.

Можно ли сгенерировать рандомные символы на кириллице?

Да, если генератор поддерживает пользовательский набор символов. Укажите строку с нужными буквами (А-Я, а-я), и каждая позиция будет выбираться из этого диапазона.

Почему спецсимволы делают пароль сильнее?

Спецсимволы расширяют алфавит с 62 (буквы + цифры) до 90+ вариантов на позицию. Это увеличивает количество возможных комбинаций и время полного перебора в тысячи раз.

Безопасно ли использовать онлайн-генератор для паролей?

Клиентские генераторы работают в браузере и не отправляют данные на сервер. Для максимальной безопасности используйте генератор на доверенном сайте по HTTPS или встроенный менеджер паролей.

Что такое энтропия случайной строки?

Энтропия – мера непредсказуемости строки в битах. Рассчитывается как log₂(N^L), где N – размер алфавита, L – длина строки. Строка из 16 символов на алфавите 94 знака имеет энтропию ~105 бит.

  1. Генератор символов онлайн – случайные строки и спецзнаки
  2. Рандомный ключ: генерация случайных ключей онлайн
  3. Рандомайзер паролей: как создать безопасный пароль онлайн
  4. Генератор паролей 8 символов – создать онлайн
  5. 15 случайных чисел: генератор онлайн и код JavaScript
  6. Рандомный пароль: генератор и проверка надёжности