Генератор 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
- Де виконується
- у браузері
- Категорія
- Laravel