devkind/simple-laravel-encryptable

1.01 2023-09-04 06:18 UTC

This package is auto-updated.

Last update: 2024-05-04 07:43:41 UTC


README

The Laravel Encryptable Attributes package provides seamless encryption and decryption of data stored in your database using Eloquent models. With this package, all values are automatically encrypted before storage and decrypted when queried, ensuring data security at rest while preserving accessibility.

Latest Version on Packagist Total Downloads GitHub Actions

This is where your description should go. Try and limit it to a paragraph or two, and maybe throw in a mention of what PSRs you support to avoid any confusion with users and contributors.

Installation

You can install the package via composer:

composer require devkind/simple-laravel-encryptable

You can publish the config file with:

php artisan vendor:publish --provider="Devkind\SimpleLaravelEncryptable\SimpleLaravelEncryptableServiceProvider" --tag="simple-encryptable"

Environment variables

Here are the values which can be modified to tweek the encryption

N.B ENCRYPTION_IV is the important field that has to be set before using the package.

ENCRYPTION_KEY=
ENCRYPTION_CIPHER=
ENCRYPTION_IV=
ENCRYPTION_PREFIX=XXX

Usage

To use the package, just add the Encryptable trait to all model and the db column names in $encryptable you want to anonymize.

<?php

namespace App\Models;

use Devkind\SimpleLaravelEncryptable\Encryptable;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    use Encryptable;

    protected $encryptable = [
        'password',
    ];

}

Once done, all values will be encrypted before being stored in the database, and decrypted when querying them via Eloquent.

Manually encrypt via Facade

use Devkind\SimpleLaravelEncryptable\SimpleEncryptable;

$value = "your-decrypted-value";

$encrypted = SimpleEncryptable::encrypt($value); // returns the encrypted value

Manually decrypt via Facade

use Devkind\SimpleLaravelEncryptable\SimpleEncryptable;

$encrypted = "your-encrypted-value";

$value = SimpleEncryptable::decrypt($value); // returns the decrypted value

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security

If you discover any security related issues, please email backend@devkind.com instead of using the issue tracker.

Credits

License

The MIT License (MIT). Please see License File for more information.

Laravel Package Boilerplate

This package was generated using the Laravel Package Boilerplate.