Генератор API-ключей
Генерация в браузере. Без истории ключей.
Для вашего приложения. Не выдаёт доступ к сторонним сервисам.
Как пользоваться генератором API-ключей
- Выберите формат, энтропию и количество. Начните с 256 бит и Base64URL, если приложение не требует другого.
- Откройте дополнительные настройки для префиксов, алфавитов или публичных ID. Проверьте расчётную длину до генерации.
- Создайте ключи и скопируйте отдельный секрет либо проверьте экспорт. Рабочие секреты храните в своей системе управления секретами, не в публичных документах.
- Зарегистрируйте секрет в приложении. Настройте там доступ, срок действия и отзыв, затем очистите результаты на странице.
Для практической работы с секретами
Простая задача остаётся простой: выберите формат, создайте и скопируйте ключ. Для особых интеграций доступны кодировки байтов, алфавиты, метки приложения, отдельные публичные ID и наборы до 1 000 ключей. Регистрация и установка не нужны. Описания ниже помогают выбрать параметры осознанно, а не считать любую визуально длинную строку более стойкой.
Форматы под требования приложения
Base64URL избегает плюса и косой черты обычного Base64 и не использует заполнение. Hex удобно проверять и широко поддерживается, но для тех же байтов требуется больше символов. Base32 использует A–Z и 2–7, здесь без заполнения. Обычный Base64 сохраняет стандартное заполнение. Всегда сверяйтесь с требованиями принимающего приложения: кодирование не является шифрованием.
Свой алфавит без вводящих в заблуждение оценок
Выберите буквы, цифры, заданный набор знаков или собственные печатные символы ASCII. Повторяющиеся символы удаляются, чтобы не повышать вероятность их выбора. Фильтр похожих символов удаляет 0, O, 1, I, l и |. Цель в битах определяет необходимую длину; точное число символов помогает соблюсти ограничение поля. Чем меньше алфавит, тем больше символов нужно для той же теоретической энтропии.
Начальные настройки, а не ключи провайдеров
API-токен использует Base64URL на 256 бит. Секрет вебхука задаёт 256-битный hex для вашей системы проверки с общим секретом. Секрет приложения использует Base64URL на 512 бит; Набор для разработки готовит десять 256-битных токенов. Это удобные настройки, не универсальные стандарты и не ключи сторонних компаний. Префикс и суффикс обозначают приложение или среду. Метка live_ сама по себе не активирует ключ и не даёт прав.
От одного ключа до удобного экспорта
Копируйте отдельные секреты или весь набор. Необязательные пары добавляют отдельный публичный 96-битный случайный ID для поиска записи. Секрет храните приватно и не используйте ID для аутентификации. JSON сохраняет значения точно. TXT поддерживает строки, запятые или пробелы. CSV экранирует ячейки и обезвреживает начало формулы, иногда добавляя апостроф. .env проверяет имена и отклоняет несовместимые кавычки. Он предназначен для Node dotenv, не для shell-скриптов. Скачанные файлы содержат открытые секреты, а не зашифрованные резервные копии.
Как рассчитываются биты, байты и символы
Для байтовых форматов берётся ceil(целевые биты / 8) случайных байт, то есть байты × 8 номинальных бит. Для N независимых равномерных символов из алфавита размером A теоретическая энтропия равна N × log₂(A). Для заданной цели нужно ceil(целевые биты / log₂(A)) символов. Например, 256 бит только из цифр требуют 78 цифр, не 32. Постоянные префиксы, суффиксы и публичный ID не учитываются в энтропии секрета. Это расчёт схемы генерации, не измерение и не сертификация случайности браузера.
Одно случайное значение в разных представлениях
32 bytes × 8 = 256 bits
| Кодировка | Символов из 32 байт |
|---|---|
| Hex | 64 |
| Base64URL | 43 |
| База64 | 44 |
| Base32 | 52 |
Длины указаны без префиксов и суффиксов. Кодировка меняет представление, но не исходную случайность.
Наша методика генерации
Используется crypto.getRandomValues в безопасном контексте. Замены на Math.random, время, действия клавиатуры или предсказуемое начальное значение нет. Кодировки байтов не теряют данные. Для алфавитов применяется выборка с отбрасыванием: значения неравномерного остатка исключаются перед сопоставлением символам. Это предотвращает смещение от простого взятия по модулю, когда размер алфавита не делит 256. Каждый набор проверяется на повторяющиеся секреты и ID. Число повторных попыток ограничено; при сбое частичный набор не выдаётся.
Что остаётся в браузере
Генерация и подготовка экспорта выполняются локально. ClockTools не отправляет значения на серверы и не записывает их в URL, аналитику или постоянное хранилище. Даже при переходе с другого инструмента страница открывает новый документ без наших загрузчиков аналитики и записи сессий. В сохранённые настройки и ссылки не входят свободные текстовые поля или ключи. Обычные запросы страницы всё равно поступают хостинг-провайдеру. Копирование переносит значение в буфер обмена, скачивание создаёт открытый файл. Расширения, синхронизация буфера, вредоносное ПО и посторонние взгляды остаются рисками. Очистка убирает результаты из интерфейса, но не гарантирует безопасное стирание памяти и не удаляет внешние копии.
Безопасное применение ключа
Случайная строка становится API-ключом только после регистрации и проверки в вашем приложении. Настройте минимальные права, HTTPS, отзыв, срок действия и ротацию в приложении. Не встраивайте серверные секреты во frontend и не сохраняйте их в репозиториях. Для рабочих ключей нужна подходящая система управления секретами. В чувствительных средах предпочтительна генерация в собственной доверенной инфраструктуре. Примеры Node.js, Python и OpenSSL создают новые локальные секреты, не копируя значения с сайта. Ни один сайт не гарантирует, что браузер или устройство не скомпрометированы.
Что проверяют тесты и чего они не доказывают
Регрессионные тесты проверяют длины, известные векторы кодирования, алфавиты, выборку с отбрасыванием, энтропию, добавления, дубликаты, экспорт и безопасную сериализацию настроек. Проверки браузера охватывают генерацию, копирование, экспорт, языковые макеты и границу аналитики. Отсутствие дубликатов или внешне ровное распределение не доказывает криптографическую случайность. Независимой сертификации у инструмента нет, а тесты нашего кода не заменяют аудит всего приложения.
Сообщайте о проблемах, не раскрывая секреты
Укажите формат, режим длины, число бит или символов, количество, браузер и воспроизводимые шаги. Используйте вымышленный пример, не действующий ключ, секрет вебхука или данные клиента. Действует наша Политика исправлений. При подтверждённом существенном дефекте следует описать затронутое поведение, добавить регрессионный тест и указать необходимость пересоздания прежних ключей. Изменение страницы не отзывает ключи, зарегистрированные в других системах: замените или отзовите их там.
Создать на своём компьютере
Примеры создают новый секрет выбранного формата с заданными префиксом и суффиксом. Они не содержат показанный ключ и не создают учётные записи, права или сроки действия. Публичные ID и пакетная генерация не включены.
import { randomBytes } from 'node:crypto';
const key = randomBytes(32).toString('base64url');Частые вопросы
Можно ли создать действующий ключ для сторонней API?
Нет. Получите его у провайдера. ClockTools создаёт случайные строки для ваших приложений, не сторонние аккаунты, кредиты или права доступа.
Делают ли 512 бит любую интеграцию безопаснее?
Не автоматически. Общий вариант по умолчанию — случайный секрет на 256 бит, но формат и размер определяются протоколом и приложением. Хорошая случайность не устраняет утечки, отсутствие авторизации или небезопасное хранение.
Почему 32 случайных символа не всегда равны 256 битам?
Важен алфавит. 32 равномерных hex-символа дают 128 бит, 32 десятичных цифры — около 106,3 бит. 32 случайных байта дают 256 номинальных бит и требуют 64 hex-символа либо 43 символа Base64URL без заполнения.
Гарантируется ли уникальность всех ключей?
Всемирной гарантии нет. Мы выявляем дубликаты в текущем наборе. При достаточном числе случайных бит совпадения крайне маловероятны, но принимающая система всё равно должна требовать уникальности записей.
Можно ли поделиться настройками без секрета?
Да. Ссылка содержит только предопределённые формат, размер, количество и переключатели. Ключи, префиксы, суффиксы и собственные алфавиты исключаются. Свой алфавит при сохранении или передаче заменяется на Base64URL.
Отзывает ли очистка результатов ключ?
Нет. Она убирает только показанный набор. Отзовите или замените активный ключ в приложении, которое его принимает. История буфера, скачанные файлы и ранее раскрытые копии этому инструменту неподконтрольны.