A lightweight Laravel package that enables user-specific encryption and decryption using a unique encrypted key stored per user.
Useful for securely storing sensitive user data like messages or personal info.
- Simple methods:
fullEncrypt()andfullDecrypt() - Each user has a unique encryption key (
enckey) - Easy integration using a trait or facade
- Laravel versions supported:
^8.0 | ^9.0 | ^10.0 | ^11.0 | ^12.0
composer require sloumach/full-encryption-package
"repositories": [
{
"type": "vcs",
"url": "https://github.com/sloumach/full-encryption-package"
}
]php artisan vendor:publish --tag=full-encryption-config php artisan vendor:publish --tag=full-encryption-migrations
Then run the migration: php artisan migrate
Generate encrypted keys for all users php artisan full:generate-keys
use FullEncryption\Facades\FullEncrypted;
use App\Models\User;
$user = User::first();
$encrypted = FullEncrypted::fullEncrypt('Hello world!', $user);
$decrypted = FullEncrypted::fullDecrypt($encrypted, $user);use FullEncryption\Traits\Encryptable;
class User extends Authenticatable {
use Encryptable;
}$user = User::first();
$encrypted = $user->fullEncrypt('Hello word');
$decrypted = $user->fullDecrypt($encrypted);Each user has an enckey (stored encrypted) generated from their email. This enckey is used as a symmetric key for AES-based encryption. The package does not depend on Laravel's APP_KEY.
The encrypted key itself is protected using Laravel's encryption system. You can override the logic by extending the service class.