Безкоштовні інструменти

Генератор випадкових байтів

Генерує криптографічно стійкі випадкові байти й виводить їх у hex, Base64, десятковому або двійковому форматі.

Що робить генератор випадкових байтів

Цей інструмент створює криптографічно стійкі випадкові байти — сировину, що лежить в основі майже кожного секрету в програмному забезпеченні, — і показує їх у будь-якому потрібному вам поданні. Замовте від 1 до 4096 байтів і виберіть формат виводу: hex у нижньому регістрі, hex у верхньому регістрі, hex із пробілами між байтами, Base64, десятковий масив із комами або двійковий рядок з одиниць і нулів. Ви скористаєтеся ним, коли потрібна справжня випадковість, а не запам'ятовуване значення: для генерування ключа шифрування, вектора ініціалізації чи nonce, солі для хешування паролів, токена CSRF чи сеансу, ключа API або секрету для підпису.

Як це працює і чому важливе джерело

Інструмент заповнює масив байтів за допомогою браузерного crypto.getRandomValues, який черпає дані з криптографічно стійкого генератора випадкових чисел операційної системи. Кожен байт — це рівномірно розподілене значення від 0 до 255, тож n байтів несуть n × 8 бітів ентропії — за умови, що джерело є справжнім CSPRNG, а воно таким і є. Це і є вирішальна відмінність від Math.random: ця функція швидка й цілком придатна для перемішування колоди чи вибору кольору, але вона передбачувана, і її ніколи не можна використовувати для генерування ключів чи токенів. Обраний вами формат виводу змінює лише те, як записуються ті самі байти, а не те, скільки випадковості вони містять: n байтів перетворюються на 2n шістнадцяткових символів, або приблизно на третину більше символів у Base64, або вісім цифр на байт у двійковому вигляді. Кодування ніколи не додає ентропії; воно лише полегшує вставлення байтів у файл конфігурації, заголовок HTTP чи вихідний код.

Вибір розміру та формату

Скільки байтів вам потрібно, залежить від завдання, але корисне емпіричне правило охоплює більшість випадків:

  • 16 байтів (128 бітів) — це практичний мінімум для секрету, такого як токен API, ідентифікатор сеансу чи сіль.
  • 32 байти (256 бітів) — це стандартний розмір для стійкого симетричного ключа, наприклад ключа AES-256 чи ChaCha20, а також для секрету підпису HMAC.
  • 12 байтів — це звичайна довжина для nonce у AES-GCM, і nonce ніколи не можна повторно використовувати з тим самим ключем, інакше гарантії конфіденційності та цілісності шифрування руйнуються.

Кнопки формату далі вирішують, як саме записуються ці байти. Скористайтеся hex, коли вам потрібне компактне однозначне значення для вставлення у файл конфігурації чи змінну середовища; Base64 — коли потрібно щось іще коротше для заголовка HTTP чи токена; десятковий масив — коли ви вставляєте безпосередньо у вихідний код як список байтів; а двійковий — коли хочете побачити окремі біти, що зручно для навчання або для міркувань про бітову маску.

Підводні камені та зауваження щодо приватності

Кілька пасток збивають людей з пантелику. Hex і Base64 — це лише подання, тож рядок, що виглядає довшим, не означає стійкіший ключ — ентропію задає виключно кількість байтів. Солі та вектори ініціалізації мають бути унікальними, але не обов'язково секретними, тоді як ключі мають бути й унікальними, і зберігатися в секреті, тож не ставтеся до них як до взаємозамінних. Якщо ви копіюєте значення в буфер обміну, пам'ятайте, що інші застосунки можуть його прочитати, тож очистіть його, щойно вставите. І хоча генерування ключа в браузері цілком надійне для багатьох цілей, для довговічного робочого секрету часто краще згенерувати його безпосередньо на машині, яка його використовуватиме, щоб ключ узагалі ніколи не подорожував.

Усе тут генерується на 100% локально у вашому браузері з власного криптографічного джерела випадковості — жоден байт ніколи не надсилається, не зберігається й не журналюється жодним сервером, а це саме те, чого ви хочете, коли на виході — справжній секрет. Ви можете переконатися в цьому, перейшовши в офлайн і поспостерігавши, як генератор продовжує працювати. Коли ви будете готові застосувати ці значення програмно, документація s4m API показує, де мають бути ключі й токени.

Цю сторінку знаходять за запитами

Реальні пошукові фрази, на які відповідає ця сторінка — за посиланнями відкриються матеріали, що розкривають тему глибше.