abbasbkz/laravel-db-encrypter

提供数据库模型属性加密/解密

This package is auto-updated.

Last update: 2024-09-30 02:13:08 UTC


README

此包是为了加密和解密 Eloquent 模型属性的值而创建的。

🔷 🔷 🔷 🔷

🔷 🔷 🔷 🔷

现在支持 jenssegers/mongodb

🔷 🔷 🔷 🔷

🔷 🔷 🔷 🔷

捐赠

如果您认为这个包对您有帮助,请捐赠。谢谢。

https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=SPYLWZ8Y5E4JE&source=url

主要特性

  • 加密和解密存储在数据库字段中的值
  • 使用标准的 Laravel 加密服务
  • 易于配置

要求

  • Laravel: 6.0 及以上
  • PHP: 7.1 及以上

数据库模式

加密的值以纯文本形式存储,因此通常比未加密的值占用更多空间。建议将表列更改为 TEXT 类型。如果您想使用 VARCHARCHAR 列类型,您仍需要检查加密值是否适合。

注意

如果您数据库中当前有未加密的数据并且已添加到 $encryptable 列表中,请不要担心 - 它们将按原样返回。
在保存值时将进行加密,一切将正常工作。

安装

通过 Composer 命令行

$ composer require payamjafari/laravel-db-encrypter

用法

  1. 在您希望使用加密的任何 Eloquent 模型中使用 betterapp\LaravelDbEncrypter\Traits\EncryptableDbAttribute 特性
  2. 定义一个包含加密属性列表的 protected $encryptable 数组。

例如

use Jenssegers\Mongodb\Eloquent\Model;
use betterapp\LaravelDbEncrypter\Traits\EncryptableDbAttribute;

class Client extends Model {
    use EncryptableDbAttribute;

    /** @var array The attributes that should be encrypted/decrypted */
    protected array $encryptable = [
        'id_number', 
        'email',
    ];
}
  1. 您可以使用 Laravel 的原始 $casts 来转换解密值

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。