sagalbot/encryptable
Composer 安装命令:
composer require sagalbot/encryptable
包简介
Allows you to store Eloquent properties encrypted in your database, and automatically decrypt when accessed.
README 文档
README
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.
Install
composer require sagalbot/encryptable
Usage
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_KEYset in your.env, you should skip this step. -
Use the
Sagalbot\Encryptable\Encryptabletrait:use \Sagalbot\Encryptable\Encryptable;
-
Set the
$encryptablearray on your Model.protected $encryptable = ['my_encrypted_property'];
-
That's it! Here's a complete example:
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Sagalbot\Encryptable\Encryptable; class MyEncryptedModel extends Model { use Encryptable; /** * The attributes that should be encrypted when stored. * * @var array */ protected $encryptable = [ 'my_encrypted_property', 'another_secret' ]; }
Encryption Options
By default, the package uses the global encrypt() and decrypt() Laravel functions, which are just aliases to resolve the Illuminate\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 the Laravel Docs.
If you need to adjust how a specific model encrypts and decrypts its properties, you can override the decryptAttribute and encryptAttribute methods on your model:
/** * @param $value */ protected function encryptAttribute($value) { // encrypt the value } /** * @param $value */ protected function decryptAttribute($value) { // decrypt the value }
Keep It Secret, Keep It Safe
Don't lose your encryption key - you can't decrypt your stored data without it.
sagalbot/encryptable 适用场景与选型建议
sagalbot/encryptable 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 57.37k 次下载、GitHub Stars 达 27, 最近一次更新时间为 2017 年 04 月 18 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「encryption」 「laravel」 「eloquent」 「laravel 5」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 sagalbot/encryptable 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 sagalbot/encryptable 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 sagalbot/encryptable 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A simple PHP class to encrypt a string and decrypt an encrypted string
A Laravel Eloquent model trait for translatable resource
A package for automatically encrypting and decrypting Eloquent attributes in Laravel 5.5+, based on configuration settings.
Encryption with AES-256 and HMAC-SHA256
Help to manage meta data on Laravel Eloquent model
A package to cast json fields, each sub-keys is castable
统计信息
- 总下载量: 57.37k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 27
- 点击次数: 30
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-04-18
