betterapp/laravel-db-encrypter

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

This package is auto-updated.

Last update: 2024-08-28 17:52:34 UTC


README

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

捐赠

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

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 betterapp/laravel-db-encrypter

用法

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

例如

    
    use betterapp\LaravelDbEncrypter\Traits\EncryptableDbAttribute;

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

许可证

MIT 许可证 (MIT)。请参阅许可证文件以获取更多信息。