PHP code example of techsemicolon / laravel-app-key-rotation
1. Go to this page and download the library: Download techsemicolon/laravel-app-key-rotation library. Choose the download type require. 2. Extract the ZIP file and open the index.php. 3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
techsemicolon / laravel-app-key-rotation example snippets
namespace App\Console\Commands;
use App\User;
use Techsemicolon\KeyRotation\ReEncrypter;
class EncryptionRotateCommand extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'encryption:rotate {--oldappkey= : Old app key}';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Re-encrypt when APP_KEY is rotated';
/**
* Create a new command instance.
*
*/
public function __construct()
{
parent::__construct();
}
/**
* Function to re-encrypt when APP_KEY is rotated/changed
*
* @param string $oldAppKey
* @param mixed $value
*/
public function handle()
{
// This is your old APP_KEY
$oldAppKey = $this->option('oldappkey');
// Instantiate ReEncrypter
$eeEncrypter = new ReEncrypter($oldAppKey);
User::all()->each(function($user) use($eeEncrypter){
// Stored value in a backup column
$user->old_bank_account_number = $user->bank_account_number;
// Re-cncrypt the old encrypted payload value
$user->bank_account_number = $eeEncrypter->encrypt($user->bank_account_number);
$user->save();
});
$this->info('Encryption completed with newly rotated key');
}