payamjafari/laravel-db-encrypter

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

This package is auto-updated.

Last update: 2024-09-21 20:51:51 UTC


README

此包旨在加密和解密Eloquent模型属性的值。

🔷 🔷 🔷 🔷

🔷 🔷 🔷 🔷

现在支持jenssegers/mongodb

🔷 🔷 🔷 🔷

🔷 🔷 🔷 🔷

捐赠

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

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

主要特性

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

要求

  • 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)。有关更多信息,请参阅 许可证文件