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

Генератор случайных API-ключей - Бесплатные безопасные 32-значные ключи

Мгновенная генерация криптографически безопасных API-ключей. Бесплатный онлайн-инструмент создает случайные 32-символьные буквенно-цифровые ключи для аутентификации. Генерация на стороне клиента, без хранения.

Генератор API-ключей

Ключи генерируются локально в вашем браузере с помощью Web Crypto API (CSPRNG), используя объективную отборочную выборку. На сервер ничего не отправляется.
Калькулятор загрузки...
📚

Документация

Генератор случайных ключей API — это инструмент, который создаёт случайную строку из букв и цифр для использования в качестве кода, подобного паролю, между двумя компьютерными программами. Этот генератор работает полностью внутри веб-браузера посетителя. Пользователь может выбрать длину ключа от 8 до 128 символов; по умолчанию используется длина 32 символа.

Что такое ключ API?

Ключ API — это строка символов, которую программа отправляет вместе с запросом, чтобы подтвердить, что у неё есть право использовать сервис. Веб-сервер проверяет ключ перед тем, как ответить на запрос. В отличие от имени пользователя и пароля, ключ API обычно идентифицирует приложение или скрипт, а не человека.

Ключи надёжнее, когда их невозможно угадать. Генератор, использующий истинную случайность, избегает закономерностей, которые встречаются в ключах, набранных человеком, например повторяющихся символов или коротких запоминающихся слов.

Как работает этот генератор

Каждый ключ создаётся из фиксированного набора из 62 символов: 26 прописных букв A–Z, 26 строчных букв a–z и 10 цифр 0–9. Для ключа длиной n из этого набора по одному выбираются n символов.

Каждый символ берётся из Web Crypto API браузера, а именно из crypto.getRandomValues(). Это криптографически стойкий генератор случайных чисел (CSPRNG), в отличие от Math.random() в JavaScript, который предсказуем и непригоден для значений, требующих защиты.

Чтобы равномерно выбрать символ из 62 вариантов случайного байта (256 возможных значений), генератор не может просто использовать byte % 62. Поскольку 256 не делится нацело на 62, обычная операция взятия остатка сделала бы первые символы набора немного более вероятными, чем остальные. Инструмент устраняет это смещение с помощью выборки с отклонением: он отбрасывает случайные байты, которые могли бы вызвать такое смещение, и вместо них получает новые. Поэтому каждый символ итогового ключа имеет одинаковую, несмещённую вероятность появления на каждой позиции.

Как сгенерировать ключ API

  1. Введите длину ключа от 8 до 128 символов или оставьте значение по умолчанию 32. Число за пределами этого диапазона отмечается как недопустимое, после чего используется ближайшая разрешённая длина.
  2. Нажмите «Сгенерировать». Ключ появится в текстовом поле, полностью созданном в браузере. При нажатии на поле весь ключ выделяется.
  3. Нажмите «Копировать», чтобы скопировать ключ в буфер обмена. Некоторые браузеры при первом использовании запрашивают разрешение.
  4. Нажмите «Сгенерировать заново», чтобы создать новый ключ той же длины, или «Сбросить», чтобы удалить ключ и вернуть длину по умолчанию 32.

Под ключом инструмент показывает три значения: длину ключа в символах, размер набора символов (всегда 62) и энтропию в битах.

Ни один ключ не отправляется на сервер, не заносится в журнал и не сохраняется. Генерация выполняется локальным кодом JavaScript, поэтому проверка сетевой активности браузера во время генерации не показывает исходящих запросов.

Как рассчитать количество возможных ключей

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

N=cnN = c^{n}

где N — число возможных ключей, c — размер набора символов, а n — длина ключа.

Размер набора символов для этого инструмента всегда равен 62. При длине по умолчанию 32:

N = 62³² ≈ 2,27 × 10⁵⁷

Это число также выражается через энтропию, измеряемую в битах, по формуле:

H=n×log⁡2cH = n \times \log_{2} c

где H — энтропия в битах.

Для ключа длиной 32 символа: 32 × log₂(62) ≈ 32 × 5,95 ≈ 190,5 бит.

Пример расчёта: сколько времени займёт перебор всех ключей

Предположим, что злоумышленник может проверять один миллиард (10⁹) ключей в секунду — нереалистично высокая скорость для любой настоящей системы. Перебор каждого возможного ключа длиной 32 символа занял бы:

2,27 × 10⁵⁷ ÷ 10⁹ = 2,27 × 10⁴⁸ секунд ≈ 7,2 × 10⁴⁰ лет

Для сравнения, возраст Вселенной составляет около 1,4 × 10¹⁰ лет. Полный перебор всех возможных ключей такой длины не представляет практической угрозы. Более короткие ключи быстро уменьшают это число: ключ длиной 8 символов имеет всего 62⁸ ≈ 2,18 × 10¹⁴ возможных значений, которые быстрый компьютер мог бы перебрать за несколько дней.

Зачем приложения используют ключи API

Ключи API дают сервису простой способ определить, какое приложение отправляет запрос. Это важно по нескольким причинам.

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

Отслеживание использования. Поскольку у каждого клиента может быть отдельный ключ, сервис может измерять объём использования для каждого из них и устанавливать отдельные ограничения частоты запросов для каждого ключа.

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

Ключи API проще реализовать, чем OAuth 2,0 — стандарт аутентификации, основанный на временных токенах, которые автоматически обновляются. OAuth подходит для общедоступных сервисов, работающих с персональными данными пользователей. Ключи API распространены во внутренних инструментах, скриптах и вызовах между сервисами, где допустимо длительное использование учётных данных.

Практики безопасности для ключей API

Несколько практик снижают риск утечки ключа:

  • Не храните ключи в исходном коде. Историю системы контроля версий трудно удалить, а общедоступные репозитории постоянно проверяются на наличие раскрытых учётных данных. Вместо этого храните ключи в переменных окружения или в менеджере секретов.
  • Периодически меняйте ключи. Замена ключа каждые несколько месяцев ограничивает срок, в течение которого утёкший ключ может быть полезен злоумышленнику.
  • Предоставляйте ключу минимально необходимый доступ. Ключ, позволяющий только читать данные, не должен также разрешать их изменять или удалять.
  • Следите за необычной активностью, например за внезапным всплеском запросов от одного ключа.

Ограничения

Этот инструмент не хранит сведения о созданных ключах, поэтому не может гарантировать, что ключ никогда не создавался ранее. Вероятность совпадения двух случайных ключей длиной 32 символа составляет примерно 1 к (2,5 см) 2,27 × 10⁵⁷, то есть практически равна нулю для обычного использования. Однако системы, которым нужна абсолютная гарантия уникальности, например первичные ключи базы данных, должны проверять новые значения на сервере по существующим.

Набор символов фиксирован и состоит из прописных букв, строчных букв и цифр. Он не включает такие символы, как ! или -, благодаря чему ключи можно вставлять в большинство URL, заголовков и конфигурационных файлов без экранирования.

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

Что такое генератор ключей API?

Это инструмент, который создаёт случайные строки для использования в качестве учётных данных аутентификации между программными приложениями. Этот генератор создаёт ключи длиной от 8 до 128 символов из 62 возможных символов, используя криптографически стойкий генератор случайных чисел браузера.

Достаточно ли безопасен ключ из этого инструмента для использования в рабочей среде?

Случайные значения генерируются с использованием криптографически стойкого источника. Общая безопасность также зависит от того, как ключ хранится и передаётся: никогда не добавляйте его в систему контроля версий, всегда передавайте по HTTPS и регулярно меняйте.

Какую длину выбрать?

Длина по умолчанию 32 символа даёт около 2,27 × 10⁵⁷ возможных комбинаций — значительно больше, чем может быть перебрано при любой реалистичной атаке полным перебором. Более короткие ключи, например длиной 16 символов, могут подойти для внутренних инструментов с низким риском. Очень длинные ключи почти не повышают защиту, но их сложнее хранить и вставлять.

Можно ли задать произвольную длину?

Да. Поле длины принимает любое целое число от 8 до 128. Сам набор символов (A–Z, a–z, 0–9) остаётся неизменным.

Хранит или передаёт ли инструмент созданные ключи?

Нет. Каждый ключ создаётся локальным кодом JavaScript в браузере. Ничего не отправляется на сервер, не заносится в журнал и не сохраняется.

В чём разница между ключом API и токеном OAuth?

Ключ API — это долгосрочные учётные данные, которые остаются действительными, пока кто-либо их не отзовёт. Токен OAuth автоматически становится недействительным через заданное время и может быть обновлён без непосредственного участия пользователя. OAuth подходит для общедоступных сервисов, работающих с персональными данными, а ключи API — для более простых внутренних задач или разработки.

Какие браузеры поддерживает этот инструмент?

Любой браузер, предоставляющий Web Crypto API, то есть все версии Chrome, Firefox, Safari, Edge и Opera, выпущенные за последнее десятилетие. Если этот API отсутствует, инструмент показывает сообщение об ошибке. Он никогда не использует запасной вариант Math.random(), поскольку тот небезопасен.