PHPackages                             codiantnew/dbaesencrypt - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. codiantnew/dbaesencrypt

ActiveLibrary

codiantnew/dbaesencrypt
=======================

Laravel MySql AES Encrypt/Decrypt

03062[1 issues](https://github.com/mahendrgurjar/dbaesencryption/issues)[1 PRs](https://github.com/mahendrgurjar/dbaesencryption/pulls)PHP

Since Feb 25Pushed 5y ago1 watchersCompare

[ Source](https://github.com/mahendrgurjar/dbaesencryption)[ Packagist](https://packagist.org/packages/codiantnew/dbaesencrypt)[ RSS](/packages/codiantnew-dbaesencrypt/feed)WikiDiscussions main Synced 4d ago

READMEChangelogDependenciesVersions (2)Used By (0)

- [Installation](#1install-the-package-via-composer)
- [Configure Provider](#2configure-provider)
- [Updating your Eloquent Models](#updating-your-eloquent-models)
- [Creating tables to support encrypt columns](#creating-tables-to-support-encrypt-columns)
- [Set encryption key in .env and config file](#set-encryption-key-in-env-and-config-file)
- [Important Notes](#important-Notes)

Laravel MySql AES Encrypt/Decrypt
=================================

[](#laravel-mysql-aes-encryptdecrypt)

Laravel 7.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 "=&gt;, &lt;',' between ',' LIKE ' in encrypted columns

1.Install the package via Composer:
-----------------------------------

[](#1install-the-package-via-composer)

```
$ composer require codiantnew/dbaesencrypt
```

2.Configure provider
--------------------

[](#2configure-provider)

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,
    Codiant\\DBAESEncrypt\\Database\\DatabaseServiceProviderEncrypt::class
)
```

3.Updating Your Eloquent Models
-------------------------------

[](#3updating-your-eloquent-models)

Your models that have encrypted columns, should extend from ModelEncrypt:

```
namespace App\Models;

use Codiant\DBAESEncrypt\Database\Eloquent;

class Product extends ModelEncrypt
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'tb_product';

    /**
     * The attributes that are encrypted.
     *
     * @var array
     */
    protected $fillableEncrypt = [
        'name'
    ];

     /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
                'name',
                'description',
                ];
}
```

4.Creating tables to support encrypt columns
--------------------------------------------

[](#4creating-tables-to-support-encrypt-columns)

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");
```

});

5.Set encryption key in .env and config file
--------------------------------------------

[](#5set-encryption-key-in-env-and-config-file)

```
Set in .env file
APP_AESENCRYPT_KEY=yourencryptedkey

Set in config/services.php
'aesEncrypt' => [
    'key' => env('APP_AESENCRYPT_KEY'),
]
```

6.Add BaseUser class for fixed problem of authenticable model problem
---------------------------------------------------------------------

[](#6add-baseuser-class-for-fixed-problem-of-authenticable-model-problem)

Create BaseUser class in app/BaseUser.php for fixed problem of authenticable model problem Extends BaseUser class in your Authenticatable model.

```
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 Codiant\DBAESEncrypt\Database\Eloquent;

class BaseUser extends Eloquent\ModelEncrypt implements
    AuthenticatableContract,
    AuthorizableContract,
    CanResetPasswordContract
{
    use Authenticatable, Authorizable, CanResetPassword, MustVerifyEmail;
}
```

Important Notes
---------------

[](#important-notes)

```
1. DB query will not work with encrypted column.
2. Union will not work with paginate method. with union you can use simplePaginate method.
3. On encrypted column searching will work case sensitive. To resolve this problem use the MySQL lowercase method.
4. Don't use encrypted columns for making model relations.
5. Use all columns of the encrypted table in fillable array. You can select only columns that are available in fillable array in your select query.
6. Don't use asterisk in select method with encrypted table (ex. ->select('users.*')).
    Sometimes you want to use an asterisk with join and some other condition. For that condition, you have to overwrite encrypted columns.
    Example : I have encrypt name column in users table.
            ->select(DB::raw('users.*'),'name as name')

```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity32

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/074b299618b43ae6a89f7fb2ef7f5985dff5c9b15c58f8adc404c4e7e1e8fd1f?d=identicon)[mgurjar](/maintainers/mgurjar)

---

Top Contributors

[![mahendrgurjar](https://avatars.githubusercontent.com/u/66988706?v=4)](https://github.com/mahendrgurjar "mahendrgurjar (7 commits)")

### Embed Badge

![Health badge](/badges/codiantnew-dbaesencrypt/health.svg)

```
[![Health](https://phpackages.com/badges/codiantnew-dbaesencrypt/health.svg)](https://phpackages.com/packages/codiantnew-dbaesencrypt)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
