rahulshibu/laravel-model-encrypter

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

This package is auto-updated.

Last update: 2024-09-15 21:32:56 UTC


README

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

主要功能

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

要求

  • Laravel: 6.0及以上
  • PHP: 7.1及更高版本

数据库模式

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

注意

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

安装

通过Composer命令行

$ composer require rahulshibu/laravel-model-encrypter

用法

  1. 在任何您希望使用加密的Eloquent模型中使用LaravelModelEncrypter\Traits\DBEncryptor特质
  2. 定义一个包含加密属性列表的protected $encryptable数组。
  3. 在.env文件中定义加密密钥。默认加密密钥为空。

例如

模型

    
    use LaravelModelEncrypter\Traits\DBEncryptor;

    class Client extends Eloquent {
        use DBEncryptor;
       
        /** @var array The attributes that should be encrypted/decrypted */
        protected $encryptable = [
            'id_number', 
            'email',
        ];
    }

ENV

ENCRYPT_KEY=abcd1234
  1. 您可以使用Laravel的原生$casts将解密后的值转换为类型

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件