API-ключ и пароль: что измеряет генератор и как хранить результат

Проверенные форматы dev API key и password Neraviko, длина случайной части и границы энтропии, хранения и прав без вывода рабочих секретов.

Различающиеся бусины внутри закрытой капсулы как образ случайного секрета и его хранения

Случайная строка становится рабочим API-ключом только после регистрации в системе, которая определяет её права и срок жизни. Генератор не создаёт аккаунт, не выдаёт разрешение и не обеспечивает хранение. У пароля тоже отдельная задача: сгенерировать значение недостаточно, чтобы приложение безопасно проверяло его позже.

В Neraviko есть два отдельных инструмента: API key и пароль. Они используют системный криптографический источник случайности и не принимают seed. Полученные API-значения — универсальные секреты для разработки, не credentials аккаунта Neraviko.

Формат API-ключа

Операция data.generate_api_key принимает input=null. Параметры: count от 1 до 20, token_bytes от 16 до 64 и prefix длиной 1–24 ASCII-символа. Для машинного обмена задавайте префикс, начинающийся с ASCII-буквы и содержащий далее только ASCII-буквы, цифры, _ и -. Проверенный ниже пример использует dev_. В текущем валидаторе обнаружена граница: завершающий перевод строки LF принимается, поэтому успешная генерация сама по себе не подтверждает отсутствие перевода строки в префиксе; проверьте его отдельно.

Случайные байты кодируются URL-safe Base64 без = padding. Для 16 байт получается 22 символа случайной части, для 32 — 43, для 64 — 86. К этой длине добавляется префикс. Например, при prefix=dev_, token_bytes=16 полная строка имеет 26 символов.

Стандартные параметры отличаются на двух уровнях: веб-интерфейс подставляет dev_, а операция без переданной опции использует key_. Чтобы тестировать точный контракт, задавайте префикс явно. По умолчанию token_bytes=32.

Синтетический запрос, не содержащий рабочего секрета:

{"input":null,"options":{"count":1,"prefix":"dev_","token_bytes":16}}

Для него локально проверены длина 26 и форма dev_ плюс 22 символа из A–Z, a–z, 0–9, _, -. Значение при проверке не выводилось и не сохранялось. Ожидаемый результат — массив output.values из одной строки, а не фиксированный опубликованный ключ.

Байты и энтропия

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

Не считайте видимые символы и случайные байты одним параметром. Строка из 32 символов Base64 и 32 исходных байта имеют разные размеры. Используйте token_bytes, затем проверьте, что принимающая система допускает полученную длину и алфавит.

Полномочия, ограничение попыток, утечки и отзыв ключа находятся в принимающей системе. Для тестового интеграционного ключа задайте ограниченную область применения там; генератор не может назначить scope своей строкой.

Формат пароля

Операция data.generate_password принимает input=null, length от 12 до 128, count от 1 до 20 и четыре переключателя: lowercase, uppercase, numbers, symbols. По умолчанию длина 24, все классы включены. Хотя бы один класс должен остаться включённым.

Каждый включённый класс гарантированно присутствует. Локальная проверка подтвердила длину 24 и наличие строчной, прописной, цифры и символа; сам пароль не печатался. В реализации используются rejection sampling и случайное перемешивание. Опций исключения похожих символов или создания словесной фразы здесь нет.

Не выдавайте формулу length × log₂(alphabet) за точную энтропию этого алгоритма: обязательное включение классов и способ сборки задают распределение. Если сервис запрещает символы, отключите этот класс и согласуйте допустимую длину. Не удаляйте символы из уже созданного пароля вручную.

Хранение относится к другой системе

Сервис проверки пользовательского пароля должен хранить защищённый password hash через штатный механизм, а не открытый текст и не обычный быстрый SHA-256. OWASP описывает адаптивные алгоритмы хранения, включая Argon2id. OWASP Password Storage, проверено 05.10.2026; дата публикации не указана.

Ключ, которым приложение обращается к внешнему API, может требоваться в исходном виде при запросе. Для него используйте действующее хранилище секретов, ограниченный доступ и механизм ротации. Не помещайте его в репозиторий, примеры логов или публичный snapshot. OWASP Secrets Management, проверено 05.10.2026.

Генерация здесь серверная; контракт операции исключает сохранение и логирование сырых параметров и результатов по умолчанию. Это не режим исключительно локального браузера. Рабочие секреты создавайте в согласованной среде; для проверки формата достаточно параметров и assertions без вывода значения. Завершённая интеграция включает регистрацию, минимальные права, безопасное хранение и проверяемый отзыв отдельно от генерации.