codiant/dbaesencrypt is a Laravel package for laravel mysql aes encrypt/decrypt.
It currently has 0 GitHub stars and 5.379 downloads on Packagist.
Install it with composer require codiant/dbaesencrypt.
Discover more Laravel packages by codiant
or browse all Laravel packages to compare alternatives.
Last updated
Laravel 5.x Database Encryption in mysql side, use native mysql function AES_DECRYPT and AES_ENCRYPT
Auto encrypt and decrypt signed fields/columns in your Model
Can use all functions of Eloquent/Model
You can perform the operations "=>, <',' between ',' LIKE ' in encrypted columns
$ composer require codiant/dbaesencrypt
If you're on Laravel 5.4 or earlier, you'll need to add and comment line on config/app.php:
'providers' => array(
// Illuminate\Database\DatabaseServiceProvider::class,
DevMaster10\\AESEncrypt\\Database\\DatabaseServiceProviderEncrypt::class
)
Your models that have encrypted columns, should extend from ModelEncrypt:
namespace App\Models;
use DevMaster10\AESEncrypt\Database\Eloquent;
class Persons extends ModelEncrypt
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'tb_persons';
/**
* The attributes that are encrypted.
*
* @var array
*/
protected $fillableEncrypt = [
'name'
];
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name',
'description',
];
}
It adds new features to Schema which you can use in your migrations:
Schema::create('tb_persons', function (Blueprint $table) {
// here you do all columns supported by the schema builder
$table->increments('id')->unsigned;
$table->string('description', 250);
$table ->unsignedInteger('created_by')->nullable();
$table ->unsignedInteger('updated_by')->nullable();
});
// once the table is created use a raw query to ALTER it and add the BLOB, MEDIUMBLOB or LONGBLOB
DB::statement("ALTER TABLE tb_persons ADD name MEDIUMBLOB after id");
});
Set in .env file
APP_AESENCRYPT_KEY=yourencryptedkey
Set in config/services.php
'aesEncrypt' => [
'key' => env('APP_AESENCRYPT_KEY'),
]
Create BaseUser class in app/BaseUser.php for fixed problem of authenticable model problem
namespace App;
use Illuminate\Auth\Authenticatable;
use Illuminate\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Foundation\Auth\Access\Authorizable;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;
use DevMaster10\AESEncrypt\Database\Eloquent;
class BaseUser extends Eloquent\ModelEncrypt implements
AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword, MustVerifyEmail;
}
Extends BaseUser class in your Authenticatable model.