以下の内容はhttps://kojirooooocks.hatenablog.com/entry/2025/12/07/233212より取得しました。


Laravel env:encrypt を試してみた

はじめに

こんばんは。

Laravelで知らない機能があったので試してみました。

laravel.com

本題

Laravel 9.32.0 以降では、.env ファイルを暗号化できる機能が追加されてるみたいです。

だいぶ前の機能だなおい。

知らなくてごめんなさい。

暗号化してみる

まず暗号化コマンドを実行します。

$ php artisan env:encrypt

 ┌ What encryption key would you like to use? ──────────────────┐
 │ Generate a random encryption key                             │
 └──────────────────────────────────────────────────────────────┘

   INFO  Environment successfully encrypted.  

  Key .......................................................................................... base64:h1SEMkC5MxPgL+WD0niElLR4qh0wRn+N1ujjc6FzZb8=  
  Cipher ............................................................................................................................... AES-256-CBC  
  Encrypted file .................................................................................................................... .env.encrypted  

これで .env.encrypted というファイルができます。

このファイルは .env 全体が暗号化されたものなので、これを Git にコミットしても安全です。

復号してみる

次に復号化してみます。

$ php artisan env:decrypt

 ┌ What is the decryption key? ─────────────────────────────────┐
 │ •••••••••••••••••••••••••••••••••••••••••••••••••••          │
 └──────────────────────────────────────────────────────────────┘

   INFO  Environment successfully decrypted.  

  Decrypted file .............................................................................................................................. .env  

暗号化したときに表示された Key を入力すると、.env ファイルが復号されます。

チーム開発での使い方

この機能の便利なところは:

  1. 新メンバー参加時: 暗号化された .env.encrypted は Git にあるので、Key だけ共有すれば復号できる
  2. 環境変数追加時: .env を更新して暗号化してコミット。他メンバーは pull して復号するだけ
  3. セキュリティ: 暗号化された状態で Git 管理できるから、履歴にも残せる

Key の管理は 1Password とかで共有すれば良さそうですね。

dotenvx というツールもあるらしい

調べてると dotenvx というツールも見つけました。

dotenvx.com

こっちは言語非依存のツールで、Laravel じゃなくても使えるみたいです。

Laravel との違い

違いをざっくりまとめると:

Laravel env:encrypt:

  • Laravel 専用の機能
  • .env 全体を暗号化して .env.encrypted という別ファイルに保存
  • キー名も含めて全部暗号化される

dotenvx:

  • 言語非依存(Node.js、PythonRuby など全部で使える)
  • .env ファイル内の各変数の値を個別に暗号化
  • キー名は見えるけど、値だけが encrypted:xxx という形式で暗号化される

どちらも同じ課題(チーム開発での .env 共有)を解決するけど、アプローチが違うって感じですね。

Laravel 使ってるなら標準機能で対応できるし、他の言語も使うプロジェクトなら dotenvx の方が良さそう。

まぁ自分はLaravelプロジェクトばっかりなんで dotenvx使う場面は今のところをなさそう...

終わりに

チーム開発での .env 共有問題、地味にストレスだったので、こういう機能があるのは助かります。

新メンバーに「Key送るから復号しといて」で済むのは楽ですね。

ではでは。




以上の内容はhttps://kojirooooocks.hatenablog.com/entry/2025/12/07/233212より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14