Об этом инструменте
Ключам шифрования, секретам API и bearer-токенам в основе нужно одно и то же: последовательность байт, которую никто не смог бы угадать. `Math.random()` для этого не подходит — это быстрый, предсказуемый ГПСЧ, предназначенный для анимаций и перемешивания, а не для безопасности. Этот инструмент вместо этого использует `crypto.getRandomValues()` — криптографически стойкий генератор случайных чисел из Web Crypto API, поэтому получаемые байты пригодны для настоящего ключевого материала: ключей AES, секретов HMAC, токенов сессии или чего угодно ещё, что должно противостоять угадыванию.
Выберите длину в битах — 128 и 256 являются распространёнными размерами ключей AES, 512 и 1024 подходят для более крупных секретов HMAC или токенов с высокой энтропией — затем выберите кодировку. Hex наиболее универсален (два символа на байт, легко проверить визуально), Base64 компактен и широко поддерживается, а Base64URL заменяет символы `+`, `/` и `=`, чтобы результат безопасно помещался в URL, имя файла или JWT без экранирования. Отдельный раздел API-ключа ниже создаёт секрет в стиле Stripe — короткий префикс, символ подчёркивания, затем случайная строка Base64URL — формат, который бесчисленные SaaS-API используют для своих bearer-токенов.
Всё происходит в вашем браузере: ни один ключ или токен, созданный здесь, никуда не отправляется. Это также означает, что ничего не логируется и не восстанавливается при уходе со страницы, поэтому скопируйте ключ прежде, чем покинуть её.
Частые вопросы
Сколько бит нужно для ключа AES?
AES поддерживает ключи длиной 128, 192 или 256 бит. AES-256 (используя 256-битный hex- или base64-вывод этого инструмента) — самый распространённый современный выбор и считается безопасным далеко за пределами любого обозримого будущего, даже против теоретических атак квантовых компьютеров, которые лишь примерно вдвое снизят его эффективную стойкость.
base64url — это то же самое, что обычный base64?
Нет, они похожи, но не идентичны: base64url заменяет символы `+` и `/` на `-` и `_` и обычно опускает завершающее заполнение `=`, поэтому результирующую строку безопасно использовать напрямую в URL или имени файла без экранирования — иначе специальные символы обычного base64 потребовали бы процентного кодирования в URL.