HOME > > > >

[6.x]暗号化、復号化について

Laravelの暗号化を利用する場合、config/app.php 設定ファイルのkeyオプションをセットする必要がある。

config/app.php

  1. /*
  2. |--------------------------------------------------------------------------
  3. | Encryption Key
  4. |--------------------------------------------------------------------------
  5. |
  6. | This key is used by the Illuminate encrypter service and should be set
  7. | to a random, 32 character string, otherwise these encrypted strings
  8. | will not be safe. Please do this before deploying an application!
  9. |
  10. */
  11.  
  12. 'key' => env('APP_KEY'),
  13.  
  14. 'cipher' => 'AES-256-CBC',

実際の値は.envのAPP_KEYから取得している。
でもってキーの生成は php artisan key:generateコマンド を利用する。

php artisan key:generateを実行すると.envのAPP_KEYが設定される。

.env

  1. APP_KEY=base64:UiWyOMux7Y5glbBMtpcACuNBhT+WRyk11emf9X/r8EU=

暗号化

encrypt()

暗号化はヘルパ関数のencrypt()を利用する

  1. var_dump(encrypt('123456789'));
  2. // string(216) "eyJpdiI6IjFBWXlhUmN4K2RjUk5lUldZd3VwM1E9PSIsI..."

Crypt::encrypt()

Cryptファサードを利用することもできる。同じ値を暗号化しても同じ値は返らない。

  1. use Illuminate\Support\Facades\Crypt;
  2. var_dump(Crypt::encrypt('123456789'));
  3.  
  4. // string(216) "eyJpdiI6IjFBWXlhUmN4K2RjUk5lUldZd3VwM1E9PSIsI..."

復号化

encrypt()

復号化はヘルパ関数のdecrypt()を利用する

  1. var_dump(decrypt('eyJpdiI6IjFBWXlhUmN4K2RjUk5lUldZd3VwM1E9PSIsI...'));
  2. // string(9) "123456789"

Crypt::decrypt()

Cryptファサードを利用して復号化することもできる。

  1. use Illuminate\Support\Facades\Crypt;
  2. var_dump(Crypt::decrypt('eyJpdiI6IjFBWXlhUmN4K2RjUk5lUldZd3VwM1E9PSIsI...'));
  3. // string(9) "123456789"

参照サイト