- Notifications
You must be signed in to change notification settings - Fork3
Laravel package for persisting encrypted Model properties, providing decryption when accessed.
License
sagalbot/encryptable
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A Laravel 5 package that allows you to store Eloquent model properties encrypted in your database, and automatically decrypts them when you need to access them.
composer require sagalbot/encryptable
This package is really just a simple trait and property that you can add to your Eloquent models. Usage is simple:
Before using Laravel's encrypter, you must set a key option in your config/app.php configuration file.
artisan key:generate
note:If you already have
APP_KEY
set in your.env
, you should skip this step.Use the
Sagalbot\Encryptable\Encryptable
trait:use \Sagalbot\Encryptable\Encryptable;
Set the
$encryptable
array on your Model.protected$encryptable = ['my_encrypted_property'];
That's it! Here's a complete example:
<?phpnamespaceApp;useIlluminate\Database\Eloquent\Model;useSagalbot\Encryptable\Encryptable;class MyEncryptedModelextends Model{use Encryptable;/** * The attributes that should be encrypted when stored. * * @var array */protected$encryptable = ['my_encrypted_property','another_secret' ];}
By default, the package uses the globalencrypt()
anddecrypt()
Laravel functions, which are just aliases to resolve theIlluminate\Encryption\Encrypter::class
out of the container. Laravel's encrypter uses OpenSSL to provide AES-256 and AES-128 encryption, which you can read more about at theLaravel Docs.
If you need to adjust how a specific model encrypts and decrypts its properties, you can override thedecryptAttribute
andencryptAttribute
methods on your model:
/** * @param $value */protectedfunctionencryptAttribute($value){// encrypt the value}/** * @param $value */protectedfunctiondecryptAttribute($value){// decrypt the value}
Don't lose your encryption key - you can't decrypt your stored data without it.
About
Laravel package for persisting encrypted Model properties, providing decryption when accessed.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.