Увійти Реєстрація
Блог Серії
Кар'єра
Вакансії Компанії
Навчання
Документація Співбесіди Тестування Відео
Екосистема
Пакети Ресурси Проєкти Інструменти Події
Інше
Про нас

Генератор APP_KEY

Створити ключ шифрування для .env

Дані не залишають ваш браузер

Цей інструмент повністю працює на вашому пристрої: обчислення виконує JavaScript у вкладці. Ми не надсилаємо введений текст на сервер, не зберігаємо і не логуємо його. Можете сміливо працювати з робочими даними - і навіть відключити інтернет після завантаження сторінки.

Для реального проєкту надійніше виконати php artisan key:generate локально - ключ, згенерований на сторонньому сайті, краще не використовувати у продакшені.

Поділитись

За що відповідає APP_KEY

Це ключ симетричного шифрування, який Laravel використовує скрізь, де дані треба зашифрувати або підписати:

  • cookies - усі, включно з сесійною;
  • сесія користувача;
  • Crypt::encryptString() і каст encrypted у моделях;
  • підписані URL - посилання для підтвердження пошти, відписки від розсилки;
  • префікс Livewire - він теж походить від APP_KEY.

Формат - base64: і 32 випадкові байти для AES-256-CBC.

Що станеться, якщо його змінити на проді

Це найважливіше, що варто знати про APP_KEY.

Усіх користувачів викине з системи - сесійні cookie перестануть розшифровуватися. Це неприємно, але переживається.

Усі зашифровані дані в базі стануть нечитабельними назавжди. Якщо у вас є поля з кастом encrypted - токени інтеграцій, персональні дані, ключі API - вони втрачені без резервної копії старого ключа. Відновити їх неможливо: у цьому й сенс шифрування.

Раніше надіслані підписані посилання перестануть працювати - усі листи з підтвердженням пошти в поштових скриньках користувачів стануть недійсними.

Тому ключ на проді змінюють лише свідомо, з планом міграції зашифрованих даних.

Правильний спосіб згенерувати

php artisan key:generate

Команда згенерує ключ і запише його у .env. Для CI або Docker, де файл чіпати не треба:

php artisan key:generate --show

Ключ, згенерований на сторонньому сайті, у продакшені використовувати не варто - навіть якщо сторінка чесно каже, що нічого не зберігає. Ця сторінка генерує ключ у вашому браузері через crypto.getRandomValues(), і він нікуди не надсилається, але звичка генерувати секрети локально надійніша за будь-які обіцянки.

Реальні сценарії для цього інструмента - швидко зробити ключ для локального стенда, демо або прикладу в документації.

Де він має зберігатися

# .env - ніколи не в git
APP_KEY=base64:...

.env уже в .gitignore кожного Laravel-проєкту. На проді ключ зазвичай приходить зі змінних оточення платформи або зі сховища секретів, а не з файлу в репозиторії.

Помилка «No application encryption key has been specified»

Означає рівно те, що написано: APP_KEY порожній. Найчастіше - після клонування проєкту (.env не скопійований з .env.example) або після config:cache з порожнім значенням.

cp .env.example .env
php artisan key:generate
php artisan config:clear