Перейти до вмісту

Генератор випадкових 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. Натисніть «Generate». Ключ з’явиться в текстовому полі, повністю сформований у браузері. Натискання на поле виділяє весь ключ.
  3. Натисніть «Copy», щоб скопіювати ключ до буфера обміну. Під час першого використання деякі браузери запитують дозвіл.
  4. Натисніть «Regenerate», щоб створити новий ключ тієї самої довжини, або «Reset», щоб очистити ключ і повернути стандартну довжину 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(), оскільки цей метод не є безпечним.