Прескочи към съдържанието

Генератор на случайни 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 cm) 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(), който не е сигурен.